6

我正在记录一个用 ini Scala 编写的内部 REST API,不幸的是我们无法集成 Swagger,所以现在我们正在使用文档生成器的内部解决方案。我想生成一个 JSON-Schema 来显示获取资源时的响应情况。我只是想知道是否有任何捷径可以利用已经建模的案例类来做到这一点。

4

2 回答 2

3

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 对此进行了测试。请注意,autoschema 有自己的依赖项(主要是play-json 2.3.2),因此您可能需要更改它们的版本以避免与您自己的项目依赖项发生版本冲突。

于 2015-06-25T20:10:41.607 回答
1

正如@mziccard 所说,自动模式是要走的路。但是,距离主存储库有一些活动已经有一段时间了。我花了一些时间来 fork 它并更新它的依赖项和不推荐使用的代码(在其他 fork 中完成的工作,我只是将它组合起来)。它现在在我的 fork 下的 maven Central 上发布:

https://github.com/sauldhernandez/autoschema

您可以通过将其放入来使用它build.sbt

libraryDependencies += "com.sauldhernandez" %% "autoschema" % "1.0.0"

于 2016-06-29T18:35:26.940 回答