加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

有没有办法从Scala Case Class层次结构中获取JSON-Schema?

发布时间:2020-12-16 18:38:24 所属栏目:安全 来源:网络整理
导读:我正在记录用 Scala编写的内部REST API,遗憾的是我们无法集成Swagger,所以现在我们正在使用doc生成器的内部解决方案. 我想生成一个 JSON-Schema来显示获取资源时的响应方式.我只是想知道是否有任何捷径可以通过利用已经建模的案例类来实现. 解决方法 autosch
我正在记录用 Scala编写的内部REST API,遗憾的是我们无法集成Swagger,所以现在我们正在使用doc生成器的内部解决方案.
我想生成一个 JSON-Schema来显示获取资源时的响应方式.我只是想知道是否有任何捷径可以通过利用已经建模的案例类来实现.

解决方法

autoschema项目能够从Scala案例类导出JSON模式.您可以按如下方式使用它:

case class MyType(myValue: Int)
AutoSchema.createSchema[MyType]

Maven工件似乎不再可用,但它是Github上的一个SBT项目,所以你可以复制源代码,构建一个Jar或者将它作为依赖项添加到SBT中,方法是在build.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),因此您可能需要更改其版本以避免版本与您自己的项目依赖项冲突.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读