OpenAPI - 无法解析引用:无法从 json 获取

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

Swagger 编辑器抛出错误,在搜索类似问题、阅读文档、谷歌搜索后...我无法得到正确的结果,你能帮我吗?谢谢

paths./create.post.parameters.0.schema.$ref 处的解析器错误 无法解析引用:无法获取 跳转到第 12 行

YAML 文件

openapi: 3.0.3

info:
  title: Test API
  version: 1.0.1
  
paths:
  /create:
    post:
      parameters:
        # headers
        - $ref: '#/components/parameters/TestName'
      responses:
        '200':
          description: Success response
          content:
            text/plain:
              schema:
                type: string
                example: pong
components:
  parameters:
    TestName:
      name: TestName
      in: header
      required: true
      example: 'Test'
      schema:
        $ref: ./common/CommonTypes.json#/%24defs/TName

JSON 文件

{
    "$schema": "http://json-schema.org/schema#",
    "description": "common",
    "version": "1.1",
    "$defs": {
        "TName": {
            "type": "string",
            "maxLength": 50
        }
    }
}
openapi swagger-ui swagger-editor
1个回答
0
投票

您不需要对相对引用进行编码。

这应该足够了,假设 CommonTypes.json 与 openapi.json 文件位于同一文件夹中。

schema:
        $ref: ./common/CommonTypes.json#/definitions/TName

唯一的其他变化是

$schema
值应该更新,但您应该知道 OpenAPI 3.0.x 不支持 JSON Schema 2020-12。它仅支持 JSON 架构草案 04 的子集。 关键字
$defs
最初是
definitions

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "description": "common",
    "version": "1.1",
    "definitions": {
        "TName": {
            "type": "string",
            "maxLength": 50
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.