首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我可以创建开放API 2文档(通过swagger),但我不能创建开放API 3文档

我可以创建开放API 2文档(通过swagger),但我不能创建开放API 3文档
EN

Stack Overflow用户
提问于 2021-02-02 18:01:02
回答 1查看 54关注 0票数 0

我正在尝试创建API文档。我使用Swagger来做这件事。我添加了以下依赖项:

代码语言:javascript
运行
复制
 <!-- swagger -->
    <dependency>
        <groupId>io.swagger</groupId>
        <artifactId>swagger-core</artifactId>
        <version>1.6.2</version>
    </dependency>
    <dependency>
        <groupId>io.swagger</groupId>
        <artifactId>swagger-jaxrs</artifactId>
        <version>1.6.2</version>
    </dependency>

在那之后,我创建了简单的文档:

代码语言:javascript
运行
复制
private static Swagger getSwagger(List<Route> routes) {
        Swagger swagger = new Swagger();
        swagger.basePath("localhost:4567");
        swagger.info(new Info().description("My API")
                .version("V1.0")
                .title("API documentation")
                .contact(new Contact().name("Name").url("site.com")));
        swagger.schemes(Arrays.asList(Scheme.HTTP, Scheme.HTTPS));
        swagger.consumes("application/json");
        swagger.produces("application/json");
        swagger.tag(new Tag().name("API"));

        Reader reader = new Reader(swagger);

        for (Route route : routes) {
            reader.read(route.getClass());
        }

        return reader.getSwagger();
    }

并将此对象转换为JSON字符串:

代码语言:javascript
运行
复制
public static String swaggerToJson(Swagger swagger) throws JsonProcessingException {
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.setSerializationInclusion(Include.NON_EMPTY);
        return objectMapper.writeValueAsString(swagger);
    }

它工作得很好。但是我在生成的文档中得到了这个字段:swagger: '2.0'

当我将我的JSON插入swagger UI时,我得到如下错误:

代码语言:javascript
运行
复制
Structural error at paths./api/users.get.responses.200
should NOT have additional properties
additionalProperty: responseSchema
Jump to line 26

这是因为我的代码生成了开放的API2.0文档。但是swagger UI需要开放的API 3.0。我可以在swagger UI中转换它:

但是我想创建开放的API3.0文档。我该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2021-02-03 00:46:16

要生成OpenAPI 3.0文档,请将io.swagger库更新为v. 2.x (在撰写本文时为2.1.6)。您可能还需要对代码和注释进行一些更改,因为与1.x相比,io.swagger.* 2.x中有一些破坏性的更改。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66007408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档