使用这个swagger-ui example来问这个问题,有没有办法请求一部分swagger规范的JSON而不是完整的东西?
例如,this url将完整的swagger规范作为该示例的JSON返回。我想知道是否有办法只请求pet
资源的端点?
提前致谢。
答案 0 :(得分:0)
最简单的方法是使用Swagger UI的filter
选项按tags
过滤显示的操作:
<!-- index.html -->
<style>
/* Optional - hide the filter box if needed */
.swagger-ui .filter-container {
display: none
}
</style>
<script>
window.onload = function() {
// Build a system
const ui = SwaggerUIBundle({
url: "http://petstore.swagger.io/v2/swagger.json",
filter: "pet", // <------
...
</script>
如果您特别想要改变实际的API定义文件(.yaml / .json),则需要实现能够实现此目的的服务器端逻辑。
答案 1 :(得分:0)
您可以编写包装动作updateSpec的statePlugin,实际上,您可以在此处修改您的swagger文件。
return {
statePlugins: {
spec: {
wrapActions: {
updateSpec: (oriAction) => {
return (spec) => {
const specObj = JSON.parse(spec);
// filter or do whatever with your swagger spec here
return oriAction(JSON.stringify(filteredSpec));
};
}
}
}
}
};