Java 为Swagger UI生成的页面中的路径参数未显示可用值

Java 为Swagger UI生成的页面中的路径参数未显示可用值,java,swagger,swagger-ui,openapi,Java,Swagger,Swagger Ui,Openapi,我正在使用yaml文件为我们的web服务自动生成Swagger报告。基本上可以归结为: resourcePackages: - com.employee.api.service openAPI: info: version: 0.1 title: Employee Service description: Shows services for employees servers: - url: http://test.internal.com:5000

我正在使用yaml文件为我们的web服务自动生成Swagger报告。基本上可以归结为:

resourcePackages:
  - com.employee.api.service
openAPI:
  info:
    version: 0.1
    title: Employee Service
    description: Shows services for employees
  servers:
    - url: http://test.internal.com:5000/employees
      description: Test Server
这将为
服务
包中的每个java类生成一个基于端点的页面。一个单独的服务使用swagger ui react读取生成的openapi.json并为其呈现网页。我们使用的是招摇版本3

在每个端点中,我们都有一个路径参数,
参数
,该参数在生成的报告中不会被其值替换。java代码本身是:


@Path("/{parameter: api|internal}/jobs")
@Produces(MediaType.APPLICATION_JSON)
public class EmployeeJobsResource{

    private EmployeeJobsManager employeeJobsManager;
    public EmployeeJobsResource(EmployeeJobsManager employeeJobsManager) {
        this.employeeJobsManager = employeeJobsManager;
    }

    @GET
    @Timed
    public Response getAllAvailablePositions(@QueryParam("departmentName") String departmentName, @QueryParam("country") String country, @QueryParam("ids") String ids) {
    ...
    }

在Swagger输出中,我们可以看到查询参数是在每个方法下定义的,甚至有这些参数的下拉列表和文本框。但是,设置了
api
internal
的路径参数在UI中没有任何定义;事实上,它表现为:

{parameter}/jobs

在openapi.yaml文件或java代码本身中,是否有任何方法可以自动将参数替换为
api
?我知道我可以在yaml文件中设置单独的路径,但是我有大约40个端点;这将使维护成为以后的一个问题。

您使用什么库/工具从Java代码生成OpenAPI文件-Springfox或其他什么?您确定
@Path(“/{parameter:api | internal}/jobs”)
是正确的注释吗?可能您需要类似于
@Parameter(…,schema=@schema(…,allowableValues={“api”,“internal”}))
(请参阅)。我们使用io.swagger.core.v3中的swagger-jaxrs2来生成代码
@Path
是来自javax.ws.rs的注释,在我们集成OpenAPI之前。我假设
@Parameter
是替换项,所以让我尝试使用它。