Kitura

Docs Build Status - Master macOS Linux Apache 2 Slack Status

Kitura-OpenAPI

Kitura-OpenAPI 是一个库,它可以轻松地将 OpenAPI (又名 Swagger) 支持添加到您基于 Codable 路由的 Kitura 应用程序中。

通过使用 Kitura-OpenAPI,您可以

  1. 在定义的端点(例如 /openapi)上托管应用程序的自动生成的 OpenAPI 定义。
  2. 在定义的端点(例如 /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 Routerwith 参数可以选择允许您配置端点托管的位置。

例如

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)

将 OpenAPI 定义写入文件

您可以轻松地将 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 中找到。