从 Swagger 规范生成 Scala 模型

Generating Scala models from Swagger spec

我正在尝试使用 Scala 构建一个 Vert.X 应用程序,并通过 OpenAPI3RouterFactory 使用 OpenAPI 3 规范生成路由。 我需要生成在我的规范中描述为 Scala 类 的模型。 有什么简单直接的方法可以实现吗?

我正在使用 SBT 构建我的应用程序,并且我已经为 Swagger 尝试了一些 sbt codegen 插件,但其中 none 似乎有效。

使用 vertx-web-api-contract,路由器和验证处理程序在 运行 时生成,因此您不需要生成路由。您可以开始使用路由器工厂并安装您想要的处理程序,就好像它是一个 Vert.x Web 路由器一样。如果您想 bootstrap 一个新项目,有一个名为 vertx-starter 的社区工具,但现在没有 Scala 支持

谈到模型,您可以在不同的文件中组织您的 OpenAPI 规范,将所有数据模型定义放在特定目录下,例如 spec/models(您可以找到一个很好的指南 here). Then you can configure jsonschema2pojo (sbt plugin) to generate a Scala case class for each schema inside that directory. Then, if you want to repack the spec in a single file, you can configure tools like swagger-cli在编译期间 运行 并将规范打包回单个文件