我有一条返回公开文章内容的路线。如果用户已登录,则路由返回不同的内容(具有附加详细信息的内容)。 我不知道如何在我的 OpenAPI 描述中声明这一点。 我在官方文档中找不到任何相关内容。
我的安全方案定义:
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
我的路线声明:
/article/{slug}:
get:
tags:
- articles
summary: Return an article with more detail for authenticated users
operationId: get_detail_article
parameters:
- name: slug
in: path
required: true
schema:
type: string
security:
- {}
- bearerAuth: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Article"
认证部分是否正确?
swagger 编辑器中的结果:
如您所见,右边的锁是黑色的并且是关闭的,这意味着需要进行身份验证。
不确定您使用的是哪个 Swagger 编辑器版本,但针对
OR
条件正确定义了安全对象,如......必须使用 bearerAuth
OR none
openapi: 3.0.3
info:
title: test
version: 1.0.0
servers:
- url: https://www.example.com
paths:
"/article/{slug}":
get:
tags:
- articles
summary: Return an article with more detail for authenticated users
operationId: get_detail_article
parameters:
- name: slug
in: path
required: true
schema:
type: string
security:
- {}
- bearerAuth: []
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/Article"
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
schemas:
Article:
description: An Article
type: string
如果我注释掉空的安全性,锁就会更改为仅需要
bearerAuth