Dokumentuję wewnętrzne API REST napisane ini Scala, niestety nie jesteśmy w stanie zintegrować Swaggera, więc na razie idziemy z wewnętrznym rozwiązaniem dla generatora dokumentów. Chciałbym wygenerować schemat JSON-Schema, aby pokazać, w jaki sposób reaguje się na pobieranie naszych zasobów. Zastanawiam się tylko, czy jest jakikolwiek skrót, aby to zrobić, korzystając z klas case już modelowanych.Czy istnieje sposób na uzyskanie schematu JSON z hierarchii klas Case Scala?
Odpowiedz
Projekt autoschema jest w stanie wyeksportować schemat JSON z klas przypadków Scala. Można go używać w następujący sposób:
case class MyType(myValue: Int)
AutoSchema.createSchema[MyType]
Maven artefakt wydaje się nie być już dostępny, ale jest to projekt SBT dostępne na Github więc można albo skopiować źródła, zbudować słoik lub dodać go jako zależność z SBT umieszczając w swojej build.sbt
następujące:
lazy val autoschemaProject =
ProjectRef(uri("https://github.com/coursera/autoschema.git"), "autoschema")
lazy val root = (project in file(".")).dependsOn(autoschemaProject)
testowałem to z SBT 0.13.7. Zauważ, że autoschema ma swoje własne zależności (głównie play-json 2.3.2
), więc możesz potrzebować zmienić ich wersje, aby uniknąć konfliktów wersji z własnymi zależnościami projektu.
Jak stwierdziła @mziccard, autoschema jest drogą do zrobienia. Jednak minęło trochę czasu, odkąd nastąpiło pewne działanie w głównym repozytorium. Zajęło mi trochę czasu, aby go rozwidlić i zaktualizować jego zależności i wycofany kod (praca, która została wykonana w innych widłach, po prostu ją połączyłem). To jest teraz opublikowany w Maven centralny pod moim widelcu:
https://github.com/sauldhernandez/autoschema
Można go używać przez umieszczenie tego w build.sbt
:
libraryDependencies += "com.sauldhernandez" %% "autoschema" % "1.0.0"
- 1. Czy istnieje sposób na eksport schematu tabeli BigQuery jako JSON?
- 2. Niestandardowa serializacja json klas uporządkowanych klas scala
- 3. Czy istnieje sposób użycia schematu JSON-LD niewypowiedziany
- 4. Czy istnieje sposób na uzyskanie aliasu typu poprzez odbicie?
- 5. Czy istnieje sposób na uzyskanie wszystkich zarządzanych jednostek z EntityManager
- 6. Czy istnieje sposób na uzyskanie danych pikseli z Internet Explorera?
- 7. Czy istnieje sposób na uzyskanie różnych partion Keys z tabeli
- 8. Case to case in Scala
- 9. Play Scala: pisarz json dla klas zagnieżdżonych
- 10. Czy istnieje prosty sposób na uzyskanie wymiarów obrazu w Ruby?
- 11. Czy istnieje sposób na uzyskanie obwiedni (w pikselach) elementu DOM?
- 12. Czy istnieje sposób na uzyskanie wyjątku w Haskell?
- 13. Czy istnieje sposób na uzyskanie identyfikatora pakietu w czasie wykonywania?
- 14. Czy istnieje sposób na uzyskanie domyślnego obiektu $ .ajax?
- 15. Czy istnieje sposób na uzyskanie REPL w pydev?
- 16. Czy istnieje sposób na uzyskanie IEqualityComparer od programu IComparer?
- 17. Czy istnieje sposób na uzyskanie danych wyjściowych jQuery * rzeczywisty znacznik *?
- 18. Czy istnieje sprytny sposób na uzyskanie sortable target w jQueryUI
- 19. Czy istnieje sposób na uzyskanie SQL utworzony przez kwerendę LINQ?
- 20. Czy istnieje sposób na uzyskanie postępu przesyłania jQuery ajax?
- 21. Czy istnieje sposób na uzyskanie ruchów obiektów całkowitych w vim?
- 22. Automapper i hierarchii klas
- 23. Czy istnieje sposób na uzyskanie wszystkich wartości w NSUserDefaults?
- 24. Czy istnieje łatwy sposób na uzyskanie nazwy ServerName w Symfony?
- 25. Czy istnieje sposób na uzyskanie "nazwanych" komórek za pomocą EPPlus?
- 26. Czy istnieje sposób na uzyskanie typu "bieżącej funkcji"?
- 27. Czy istnieje prosty sposób na uzyskanie rozmiaru obiektu java?
- 28. Czy istnieje sposób na uzyskanie zlokalizowanych nazw popularnych przycisków dialogowych?
- 29. Czy istnieje sposób na uzyskanie XML dla produktów Amazon?
- 30. Czy istnieje sposób na uzyskanie ograniczeń tabeli w SQLite?