首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >swagger-codegen不为引用的json文件中定义的模式生成类

swagger-codegen不为引用的json文件中定义的模式生成类
EN

Stack Overflow用户
提问于 2017-05-23 19:09:25
回答 1查看 2.5K关注 0票数 0

我无法让swagger-codegen为在独立于主API定义文件的文件中定义的json模式生成类。我使用的命令是:

代码语言:javascript
运行
AI代码解释
复制
$ java -jar swagger-codegen-cli-2.2.2.jar generate -i api.json -l java -o gen -v

这是api.json的样子:

代码语言:javascript
运行
AI代码解释
复制
{
"swagger": "2.0",
"info": {
    "version": "1.0.0",
    "title": "Simple API",
    "description": "A simple API to learn how to write OpenAPI Specification"
},
"schemes": [
    "https"
],
"host": "simple.api",
"basePath": "/openapi101",
"paths": {
    "/persons": {
        "get": {
            "summary": "Gets some persons",
            "description": "Returns a list containing all persons.",
            "responses": {
                "200": {
                    "description": "A list of Person",
                    "schema": {
                  "$ref" : "person.json#/definitions/person"                    

    }
                    }
                }
            }
        }
    }

}

这里引用的person.json文件与api.json并存(即在同一级别),并包含以下内容:

代码语言:javascript
运行
AI代码解释
复制
{"definitions": {
“person”: {
  "type": "object",
  "description": "",
  "properties": {
    "requestId": {
      "type": "string",
      "example": "1234"
    }
  }
}}}

我期望代码生成会生成一个名为Person.java的类--但它没有--事实上它不会生成任何模型类。此外,详细日志记录一开始就记录了以下内容,这让我认为它错误地解释了引用,并且出于某种原因在$ref中添加了#定义。

主要信息io.swagger.parser.Swagger20Parser -从api.json读取

代码语言:javascript
运行
AI代码解释
复制
{
  "swagger" : "2.0",
  "info" : {
    "description" : "A simple API to learn how to write OpenAPI Specification",
    "version" : "1.0.0",
    "title" : "Simple API"
  },
  "host" : "simple.api",
  "basePath" : "/openapi101",
  "schemes" : [ "https" ],
  "paths" : {
    "/persons" : {
      "get" : {
        "summary" : "Gets some persons",
        "description" : "Returns a list containing all persons.",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "A list of Person",
            "schema" : {
              "$ref" : "#/definitions/person.json#/definitions/person"
            }
          }
        }
      }
    }
  }
}

有人知道这里发生了什么吗?引用本地文件中的模式定义的正确方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2017-05-24 14:45:10

将./添加到$ref中可以使其正常工作。

代码语言:javascript
运行
AI代码解释
复制
./person.json#/definitions/person
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44143163

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文