2013-05-27 4 views
5

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

3

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.

1

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"

Powiązane problemy