Swagger:通配符路径参数
我有一个API允许任何路径传入,例如所有这些:
/api/tags
/api/tags/foo
/api/tags/foo/bar/baz
是有效的路径。 我试图描述如下:
/tags{tag_path}:
get:
parameters:
- name: tag_path
in: path
required: true
type: string
default: "/"
但是,https://generator.swagger.io会在路径中对斜杠进行编码,因此它不起作用。 那么有没有办法在Swagger中描述我的API?
所以这不会很快得到支持(它甚至没有计划Swagger 3.0),我不得不求助于解决方法。
如果我有路径/tags{tag_path}
并且我输入了类似于tag_path
: /foo/bar
,那么实际的查询请求URL将为: /tags%2Ffoo%2Fbar
。 所以,我只是在后端添加了%2Ffoo%2Fbar
支持: /tags*
urldecode的端点处理器解释了路径(即%2Ffoo%2Fbar
),并且它又变成了/foo/bar
。
是的,一个黑客,但它的作品,它总比没有好。 在我的情况下,标签名称不能包含/
字符,所以没有冲突。 当然,你的里程可能会有所不同。
上一篇: Swagger: wildcard path parameters
下一篇: What is the difference between IWindsorContainer vs IUnityContainer?