ruby-on-rails - 尽管 API 有效,但 Swagger-ui 只发送 OPTIONS 而不是 POST http 方法

标签 ruby-on-rails api post swagger grape-api

我正在使用 Swagger-UI 来浏览我自己的 API,它是用葡萄构建的,并用葡萄 Swagger 自动记录。

我用谷歌搜索并尝试了我能找到的所有建议,但我无法让 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, GET, 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 仅通过“form”paramType 而不是“body”paramType 通过 POST 接受多个参数,在本期中引用 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在本地主机上自动安装swagger-ui(文件也可以从swagger-ui站点下载),一切正常!!

关于ruby-on-rails - 尽管 API 有效,但 Swagger-ui 只发送 OPTIONS 而不是 POST http 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13990021/

相关文章:

Java HttpURLConnection post 方法不起作用

java - 如何使用 Java 中的 Reddit API 获取点赞百分比

rest - 如何从 REST API 传递类别属性值

javascript - 使用 jQuery Post 方法创建哈希帖子

ruby-on-rails - 在美国寻找给定中心点和半径的人口的算法

javascript - 谷歌地图未捕获类型错误 : Cannot read property 'LatLng' of undefined

ruby-on-rails - ruby rails : not closing HTTP response (when "asian characters" are displayed

ruby-on-rails - 无法将自定义字段添加到 Ruby on Rails 中的 Devise 模型。私有(private)方法错误

ruby-on-rails - Rails 中的多种格式验证

ruby-on-rails - 使用 rspec 测试嵌套路由