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

问题描述

我正在使用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

这将根据service包中每个java类的端点生成一个页面。单独的服务使用swagger-ui-react读取生成的openapi.json并为其呈现网页。我们正在使用Swagger版本3。

在每个端点中,我们都有一个路径参数parameter,它不会被生成的报告中的值所代替。 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输出中,我们可以看到查询参数是在每种方法下定义的,甚至还有这些参数的下拉列表和文本框。但是,设置了apiinternal的path参数在UI中没有任何定义。实际上,它表示为:

{parameter}/jobs

在openapi.yaml文件或Java代码本身中,是否可以用api自动替换参数?我知道我可以在yaml文件中设置单个路径,但是使用此设置,我大约有40个端点。以后会使维护成为一个问题。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)