Kitura-OpenAPI 是一个库,它可以轻松地将 OpenAPI (又名 Swagger) 支持添加到您基于 Codable 路由的 Kitura 应用程序中。
通过使用 Kitura-OpenAPI,您可以
/openapi
)上托管应用程序的自动生成的 OpenAPI 定义。/openapi/ui
)上托管 SwaggerUI 工具。将 Kitura-OpenAPI
添加到应用程序 Package.swift
文件中的依赖项。将 "x.x.x"
替换为最新的 Kitura-OpenAPI
版本。
.package(url: "https://github.com/IBM-Swift/Kitura-OpenAPI.git", from: "x.x.x")
将 KituraOpenAPI
添加到目标依赖项
.target(name: "example", dependencies: ["KituraOpenAPI"]),
在您的应用程序中导入该软件包
import KituraOpenAPI
在您的应用程序中,在启动期间调用 KituraOpenAPI.addEndpoints(to:with:)
,传入您要托管 OpenAPI 端点的 Kitura Router
。 with
参数可以选择允许您配置端点托管的位置。
例如
KituraOpenAPI.addEndpoints(to: router) // Use the default endpoints
然后,您可以在 Web 浏览器中访问 /openapi
以查看生成的 OpenAPI 定义,并访问 /openapi/ui
以查看 SwaggerUI。
如果需要,您可以自定义端点路径
let config = KituraOpenAPIConfig(apiPath: "/swagger", swaggerUIPath: "/swagger/ui")
KituraOpenAPI.addEndpoints(to: router, with: config)
您可以轻松地将 Kitura 路由器的 OpenAPI 定义写入文件
try KituraOpenAPI.writeOpenAPI(from: router, to: "/myProject/kitura-server.json")
Kitura-OpenAPI 的工作原理是使用 Kitura 在运行时内省已注册的 Codable 路由的能力,这是在 Kitura 2.4 中添加的功能。由于 Codable 路由提供了在运行时生成 OpenAPI 定义所需的强类型信息,因此此功能目前无法支持“原始”路由。
我们很乐意讨论服务器端 Swift 和 Kitura。加入我们的 Slack 来认识团队!
此库已获得 Apache 2.0 许可。完整的许可文本可在 LICENSE 中找到。
该库包含来自 Swagger-UI 的组件,该组件已获得 Apache 2.0 许可。完整的许可文本可在 swagger-ui/LICENSE 中找到。