1

swagger-codegen 根据路径名生成 APIControllers。

假设您的 swagger.yaml 中有这些路径:

/pet/findByStatus: /user/{userId} /store/inventory

然后 codegen 将生成 PetAPIController、UserAPIController、StoreApiController。

但我的 API 类似于:

/private/pet/findByStatus: /private/user/{userId} /public/store/inventory

所以我最终得到了两个主要控制器:PrivateAPI 和 PublicAPI

有没有办法避免这种情况?使用标签,或者只使用第二个路径词。

谢谢

4

1 回答 1

4

Swagger Codegen 的spring生成器有一个useTags选项 (true/false),它告诉 codegen 使用标签来命名接口和控制器类。使用 Swagger Codegen Maven 插件时,您可以在以下<configOptions>部分指定此选项:

<configuration>
    <inputSpec>${project.basedir}/src/main/resources/api.yaml</inputSpec>
    <language>spring</language>
    <configOptions>
       <useTags>true</useTags>
    </configOptions>
</configuration>

useTags=true时,带有特定标签的操作,比如admin,将被放入AdminApi.javaAdminApiController.java中。

确保适当地标记 API 定义中的所有操作:

paths:
  /foo:
    get:
      tags:    # <-----
        - admin
      ...
于 2020-02-26T21:02:56.077 回答