我有一个带有springfox-swagger2 2.8.o的spring 4项目,生成了swagger 2规格。为了使用此规范,我在前端应用程序中使用了swagger-ui 3.22.1。目前swagger-ui在规范中显示了所有端点,我如何仅在swagger-ui中显示特定端点?有没有一种方法可以过滤特定路径的规格?还是可以仅在springfox-swagger2 / swagger-ui中动态获取仅针对特定路径/端点的规格?
我尝试获取规范并过滤该特定端点的前端json。例如,仅从路径对象中提取“ / my-endpoint”,仅提取与“ / my-endpoint”相关的标签,然后基于提取的路径和标签创建新的json,它确实部分解决了问题,但是models对象具有所有路径的模型,每当我必须显示特定端点的文档时,也必须从服务器获取整个规格。
const { paths, tags } = swagger2JsonData;
const { ['/my-endpoint']: path } = paths;
const specifiedEndpointData= { '/my-endpoint': { ...path } };
const specifiedEndpointTag= tags.filter(x => x.name === 'my-endpoint-controller-tag');
const newData = { ...swagger2JsonData, paths: specifiedEndpointData, tags: specifiedEndpointTag};
SwaggerUI({
spec: newData,
dom_id: '#swagger-ui-container',
presets: [SwaggerUI.presets.apis]
});
答案 0 :(得分:0)
一种选择是使用正则表达式过滤路径,您在其中配置了Docket:
@Bean
public Docket petApi() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.regex("YOURREGEXHERE"))
.build()
更多信息在这里: https://springfox.github.io/springfox/docs/snapshot/#quick-start-guides