如何让 Swagger 文档在外部 api 身份验证后面工作?

问题描述 投票:0回答:1

我们有一个设置,我们的 api 身份验证是通过 AWS Cloudfront 中的第三方库完成的。在我们的 api 中,我们使用第三方库 (reitit-swagger) 创建 swagger 文档,因此我们无法对其进行调整。

我们尝试在没有 api 身份验证的情况下绕过所有 swagger 内容,并且它有效,但所有其他 swagger 内容都可以公开,除了 swagger.json,它包含我们 api 的所有详细信息。

我们怎样才能拥有一个有效的 swagger 文档背后的 api 身份验证而不将 swagger.json 暴露给世界?

authentication clojure swagger api-documentation reitit
1个回答
0
投票

swagger.json
文件是 API 的机器可读文档。 通常,它用于生成客户端绑定/库和 GUI 文档(例如 Swagger UI)。

这意味着它在客户端应用程序/库被写入时使用,而不是在它们被运行时使用。

因为它(通常)不在运行时使用,所以不需要 API 身份验证。

最好可以免费获取文档。 微软和谷歌就是很好的例子。 尽管他们的大部分文档都是公开的,但他们还是赚了很多钱。

但是,如果您出于业务原因需要限制

swagger.json
,只需将其放在面向人的支持/文档网站上,限制为需要登录。 换句话说,使用人工身份验证,而不是 API 身份验证。

OpenAPI 不要求 API 端点与 JSON 文件位于同一服务器上。 有一个

servers
字段 允许您指定。这个例子来自上面的链接:

servers:
  - url: https://api.example.com/v1    # The "url: " prefix is required
© www.soinside.com 2019 - 2024. All rights reserved.