我正在记录一个用iScala编写的内部REST API,很遗憾,我们无法集成Swagger,所以现在我们要为doc生成器提供内部解决方案。
我想生成一个JSON-Schema来显示获取资源时响应如何。我只是想知道是否有任何捷径可以利用已经建模的案例类来做到这一点。
最佳答案
autoschema项目能够从Scala案例类导出JSON模式。您可以按以下方式使用它:
case class MyType(myValue: Int)
AutoSchema.createSchema[MyType]
Maven工件似乎不再可用,但是它是Github上可用的SBT项目,因此您可以通过将
build.sbt
放入以下内容来复制源代码,构建Jar或将其添加为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
),因此您可能需要更改其版本,以避免与您自己的项目依赖关系发生版本冲突。