我并不是一个swagger专家,但是所有使用swagger的系统都要求你拥有JSON或YAML格式的swagger规范,定义你的API的所有端点和其他信息。
我的问题是:是否有已知的方法可以基于实际源代码生成这些规范文件? 我之所以问这个问题,是因为当你开始添加属性或返回稍微不同的结果时,很难保持端点代码和文档同步。
所以当我有了这段代码(使用http4s和RhoService):
object HelloWorld {
val service = new RhoService {
GET / "hello" / 'name |>> { name: String =>
Ok(Json.obj("message" -> Json.fromString(s"Hello, ${name}")))
}
}
}
希望它能以某种方式生成(例如:)
/hello/{name}:
get:
tags:
- "HelloWorld"
summary: ""
description: ""
operationId: "getHellobyName"
produces:
- "application/json"
parameters:
- name: "name"
in: "path"
description: ""
required: true
type: "string"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/Hello"
security:
- api_key: []