我试图传达身份验证/安全方案需要设置一个头,如下所示:
Authorization: Bearer <token>
这是我根据swagger文档所做的:
securityDefinitions:
APIKey:
type: apiKey
name: Authorization
in: header
security:
- APIKey: []
OpenAPI3.0现在在本地支持承载/JWT身份验证。它的定义是这样的:
openapi: 3.0.0
...
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT # optional, for documentation purposes only
security:
- bearerAuth: []
这在Swagger UI 3.4.0+和Swagger Editor 3.1.12+中支持(同样,仅适用于OpenAPI 3.0规范!)。
UI会显示“授权”按钮,您可以点击该按钮并输入承载令牌(只是令牌本身,没有“承载”前缀)。之后,将使用authorization:barer xxxxxx
头发送“try it out”请求。
如果您使用Swagger UI,并且由于某种原因,需要以编程方式添加authorization
头,而不是让用户单击“authorize”并输入令牌,则可以使用RequestInterceptor
。此解决方案适用于Swagger UI3.x;UI2.x使用了一种不同的技术。
// index.html
const ui = SwaggerUIBundle({
url: "http://your.server.com/swagger.json",
...
requestInterceptor: (req) => {
req.headers.Authorization = "Bearer xxxxxxx"
return req
}
})
也许这能有所帮助:
swagger: '2.0'
info:
version: 1.0.0
title: Based on "Basic Auth Example"
description: >
An example for how to use Auth with Swagger.
host: basic-auth-server.herokuapp.com
schemes:
- http
- https
securityDefinitions:
Bearer:
type: apiKey
name: Authorization
in: header
paths:
/:
get:
security:
- Bearer: []
responses:
'200':
description: 'Will send `Authenticated`'
'403':
description: 'You do not have necessary permissions for the resource'
您可以复制并粘贴到这里:http://editor.swagger.io/#/查看结果。
在swagger editor web中也有一些具有更复杂的安全配置的示例,可以为您提供帮助。
我正在为一个新endpoint创建一个招摇规范,该endpoint将接收一个作为二进制数据的文件。你会如何在夸张的规范中表达这一点?我将对象视为数据类型,但这似乎不是我要寻找的。过去有人这样做过吗? 据我所知,这个问题不是重复的,因为它专门涉及二进制或“blob”对象类型。
我正在用ExpressJs创建一个Restful服务器。我已经集成了swagger和jsdoc。以下是相关文件。下面(header.png)是我期望我的头在swagger UI中的样子。但是,当我打开我的招摇过市UI时(http://localhost:3000/api-docs/),我无法在标题中看到令牌标记(令牌和身份验证)。 app.route 当前Swagger用户界面:
我试图用一个静态的swagger文件来记录一个API,该文件可以返回一些JSON,其中包含一个类似如下的数组: 我尝试了几种不同的方法来定义规范,使用多态性或显式定义多个示例。这些例子要么最终看起来像: 或者只是: 有没有办法在我的swagger规范中定义一个示例,以便swagger-ui显示的示例有效负载将包含一个数组,该数组包含一个A类型的示例和一个B类型的示例,就像我编写的第一个JSON一样
我开发了一个带有Swagger注释的REST API。我已经能够展示一个炫耀的ui应用程序的api文档,非常好。 问题:根据我的注释,我试图使用swagger提供的url生成符合该规范的客户端。问题是,它似乎是不兼容的,或者至少,我不知道如何做swagger编辑器读取我的网址,并从那时起,产生客户。但是swagger编辑器向我报告了一些错误... 是否可以将我的带注释的 swagger api 与
iam试图验证一些可能包含swagger规范的字符串。我正在尝试使用swagger解析器。 以下代码不起作用。我只收到消息:“[属性不是]类型” swagger规范是从xml文件中读出的。 这个方法是错误的吗?或者。错误消息的含义是什么?我只想知道字符串是否包含JSON格式的有效Swagger规范。 谢谢你的帮助。 更新:问题已解决 据我所知,如果字符串不是json有效的,就会抛出错误。首先我检查
我正在使用go-swagger生成API服务器。我注意到json是由swagger生成的。yml保存在restapi/embedded\u spec.go中。 公开JSON规范以便我的ReactJS客户端可以访问它的最佳方式是什么? 到目前为止,我不得不使用招摇发球招摇。yml—端口=50000,并将JavaScript客户端指向本地主机:50000/swagger。json。我正在寻找一种通过A