Swagger:通配符路径参数

时间:2017-02-20 01:39:31

标签: swagger swagger-ui swagger-2.0

我有一个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?

1 个答案:

答案 0 :(得分:5)

所以这不会很快得到支持(它甚至没有计划用于Swagger 3.0),我不得不求助于解决方法。

如果我有一个 <!-- Modal --> <section class="modal" id="myModal"> <!-- Modal content--> <div class="modal-content" id="modal-content"> <img class="modal-home-logo" src="img/logo.png" alt="logo"> <p id="modal-contact-title">Are you intrested in cooperation?</p> <p id="modal-contact-sub-title">Just hit me up via this simple email form !</p> <form id="my_form" onsubmit="submitForm(); return false;"> <p><input id="n" placeholder="Your name - HERE" required></p> <p><input id="e" placeholder="Your email - HERE" type="email" required> </p> <textarea id="m" placeholder="Tell me about your project... what is it? What do you hope to accomplish ? How can i help ? Oh try to ESC if missclicked :)" rows="10" required></textarea> <p><input id="mybtn" type="submit" value="Let's do this !"></p> <p id="modal-contact-sub-title">Awsome thanks !</p> </form> </div> </section> <!-- End Modal --> 路径并输入/tags{tag_path}tag_path这样的内容,那么实际的查询请求网址将是:/foo/bar。所以,我刚刚在我的后端添加了对它的支持:/tags%2Ffoo%2Fbar的端点处理程序对路径(/tags*)进行了解码,并再次成为%2Ffoo%2Fbar

是的,一个黑客,但它有效,而且它比没有好。就我而言,标签名称不能包含/foo/bar字符,所以没有冲突。当然,您的里程可能会有所不同。