微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby-on-rails – 尽管工作API,Swagger-ui只发送OPTIONS而不是POST http方法

我正在使用Swagger-UI浏览我自己的API,用葡萄构建并自动记录葡萄招摇.

我用Google搜索并尝试了我能找到的所有建议,但我无法让POST工作.这是我的标题

header "Access-Control-Allow-Origin","*"
  header "Access-Control-Allow-Methods","POST,GET,OPTIONS,PUT,PATCH,DELETE"
  header "Access-Control-Request-Method","*"
  header "Access-Control-Max-Age","1728000"
  header "Access-Control-Allow-Headers","api_key,Content-Type"

我只是扔了一切建议.我已经在supportedSubmitMethods中启用了所有HTTP方法,并且我使用POSTMAN Chrome扩展程序测试了API,它运行良好.正确创建用户并返回正确的数据.

然而,我得到的所有swagger帖子都是服务器报告:

Started OPTIONS "/v1/users.json" for 127.0.0.1 at 2012-12-21 04:07:13 -0800

和swagger的反应看起来像这样:

请求网址

http://api.lvh.me:3000/v1/users.json

响应机构

响应代码

0

响应标题

我还用POSTMAN测试了OPTIONS响应,如下所示:

Allow →OPTIONS,POST
Cache-Control →no-cache
Date →Fri,21 Dec 2012 12:14:27 GMT
Server →Apache-Coyote/1.1
X-Request-Id →9215cba8da86824b97c6900fb6d97aec
X-Runtime →0.170000
X-UA-Compatible →IE=Edge

解决方法

我有同样的问题,只是解决了,希望这有助于某人.

Swagger-UI仅通过POST形式接受多个参数,而不是’body’paramType,在本期https://github.com/wordnik/swagger-ui/issues/72中引用.

我使用了分支:git => ‘git://github.com/Digication/grape-swagger.git’将’post’请求paramType更改为’form’.为swagger_doc生成的xml输出(可能在path / swagger_doc / api或类似地方)应如下所示:

<api>
  <path>/api/v2/...</path>
    <operations type="array">
      ...
      <httpMethod>POST</httpMethod>
        <parameters type="array">
          <parameter>
            <paramType>form</paramType>
            ...More

<paramType>body</paramType>
...More

我使用grape-swagger-rails gem在localhost上自动安装swagger-ui(文件也可以从swagger-ui网站下载),一切正常!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐