从外部 yaml 文件引用响应时的 NPE

我正在拆分 YAML 文件,但是在生成代码时出现以下异常:


java.lang.NullPointerException

    at io.swagger.v3.parser.ResolverCache.updateLocalRefs(ResolverCache.java:162)

    at io.swagger.v3.parser.ResolverCache.loadRef(ResolverCache.java:152)

    at io.swagger.v3.parser.processors.ExternalRefProcessor.processRefToExternalResponse(ExternalRefProcessor.java:205)

    at io.swagger.v3.parser.processors.ResponseProcessor.processReferenceResponse(ResponseProcessor.java:76)

    at io.swagger.v3.parser.processors.ResponseProcessor.processResponse(ResponseProcessor.java:38)

    at io.swagger.v3.parser.processors.OperationProcessor.processOperation(OperationProcessor.java:56)

    at io.swagger.v3.parser.processors.PathsProcessor.processPaths(PathsProcessor.java:83)

    at io.swagger.v3.parser.OpenAPIResolver.resolve(OpenAPIResolver.java:49)

    at io.swagger.v3.parser.OpenAPIV3Parser.readLocation(OpenAPIV3Parser.java:53)

    at io.swagger.parser.OpenAPIParser.readLocation(OpenAPIParser.java:19)

我正在努力实现的示例(openapi.yaml):


openapi: 3.0.0

info:

  title: Common Data Types

  version: "1.0"

paths:

  /{appId}/subscriptions:

    get:

      summary: read all of the active subscriptions for the app


      responses:

        '200':

          description: OK (Successful)

          content:

            application/json:

              schema:

                type: array

                items:

                  $ref: '#/components/schemas/subscription'

        '400':

          $ref: './common.yam#/components/responses/E400'

        '401':

          $ref: './common.yam#/components/responses/E401'

components:

  schemas:

    subscription:

      type: string

和common.yaml:


openapi: 3.0.0

info:

  title: Common Data Types

  version: "1.0"

paths: {}

components:

 responses:

    E400:

      description: Bad request

    E401:

      description: Unauthorized

语境:


$ tree

├── common.yaml

└── openapi.yaml

$ openapi-generator version

3.3.0


30秒到达战场
浏览 126回答 1
1回答

慕哥6287543

此问题已在openapi-generator-cli-4.0.0-beta3.但是,对于3.3.0以下版本将起作用我观察到的是导致问题的if common.yaml文件被修改为common_modified.yaml,问题得到解决并且没有Null指针异常。YAML 导致问题common.yamlopenapi: 3.0.0    info:      title: Common Data Types      version: "1.0"    paths: {}    components:     responses:        E400:          description: Bad request        E401:          description: Unauthorized修改后的 YAML 修复了问题common_modified.YAMLopenapi: 3.0.0    info:      title: Common Data Types      version: "1.0"    paths: {}    components:     responses:        E400:          description: Bad request          content:            applictaion/json:          E401:          description: Unauthorized          content:            applictaion/json:如果从外部引用,似乎开放 API 会查找内容。不过不确定。但对我有用!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java