私は ini Scala で記述された内部 REST API を文書化していますが、残念ながら Swagger を統合することはできないため、現時点ではドキュメント ジェネレーターの社内ソリューションを使用しています。リソースを取得するときの応答を示すために、JSON スキーマを生成したいと思います。すでにモデル化されているケースクラスを利用して、これを行うためのショートカットがあるかどうか疑問に思っています。
2 に答える
autoschemaプロジェクトは、Scala ケース クラスから JSON スキーマをエクスポートできます。次のように使用できます。
case class MyType(myValue: Int)
AutoSchema.createSchema[MyType]
Maven アーティファクトは利用できなくなったようですが、Github で利用できる SBT プロジェクトであるため、ソースをコピーするか、Jar をビルドするか、build.sbt
以下を入力して SBT の依存関係として追加することができます。
lazy val autoschemaProject =
ProjectRef(uri("https://github.com/coursera/autoschema.git"), "autoschema")
lazy val root = (project in file(".")).dependsOn(autoschemaProject)
これを SBT 0.13.7 でテストしました。オートスキーマには独自の依存関係 (主にplay-json 2.3.2
) があることに注意してください。そのため、所有するプロジェクトの依存関係とのバージョンの競合を避けるために、バージョンを変更する必要がある場合があります。
@mziccard が述べたように、自動スキーマが最適です。ただし、メイン リポジトリでアクティビティが発生してからしばらく経ちました。私はそれをフォークし、その依存関係と非推奨のコードを更新するのに時間がかかりました (他のフォークで行われた作業を単純に組み合わせただけです)。それは現在、私のフォークの下でmaven centralに公開されています:
https://github.com/sauldhernandez/autoschema
これを次のように入れることで使用できますbuild.sbt
:
libraryDependencies += "com.sauldhernandez" %% "autoschema" % "1.0.0"