请求中不需要ID的Rails Grape API“ ID无效”

丹尼斯·雅科文科(Denis Yakovenko)

我有一个由Doorkeeper保护的Grape API,并且有很多方法都可以正常工作。但是,有一种方法表现异常。这是一个不需要参数的GET请求,运行它会引发以下错误:

/v1/discount_cards/all.json中的Grape :: Exceptions :: ValidationErrors

ID无效

我的方法如下所示:

desc 'Get all the cards of current customer'
params {}
get 'all' do
  current_customer.discount_cards.to_json(include:
  {
    barcode: {
      include: :barcode_type
    }
  })
end

日志显示错误发生在logger.rb文件的第17行,如下所示:

module API
  class Logger
    def initialize(app)
      @app = app
    end

    def call(env)
      payload = {
        remote_addr: env['REMOTE_ADDR'],
        request_method: env['REQUEST_METHOD'],
        request_path: env['PATH_INFO'],
        request_query: env['QUERY_STRING'],
        x_organization: env['HTTP_X_ORGANIZATION']
      }

      ActiveSupport::Notifications.instrument 'grape.request', payload do
        @app.call(env).tap do |response| # <-- logs say the error is here
          payload[:params] = env['api.endpoint'].params.to_hash
          payload[:params].delete('route_info')
          payload[:params].delete('format')
          payload[:response_status] = response[0]
        end
      end
    end
  end
end

我的主base.rb班看起来像这样:

module API
  class Dispatch < Grape::API
    mount API::V1::Base
  end

  Base = Rack::Builder.new do
    use API::Logger
    run API::Dispatch
  end
end

我真的不明白id它在说什么,而且,所有其他api方法都可以正常工作(发布,获取,放置,删除)。

您能帮我解决这个问题吗?

达克斯

我最近也遇到了这个问题,事实证明这对我来说是一个代码顺序问题。我在这里找到了答案

Grape按顺序评估路由,因此使用两条路由/:id和/ nearby_missions,它首先匹配/:id,使id = nearby_missions。然后,它尝试强制将near_missions转换为Integer,该整数将失败,并且您会收到缺少的ID错误。

您可以通过添加要求:/ \ d * /来“解决”这一问题(不进行测试),但是最好按您希望它们被评估的顺序订购它们,这就是您要做的。做过。

对于我来说,您的问题中没有足够的信息,以确保这也是您的问题,但是很可能是这样!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Grape API中检查请求主体

来自分类Dev

在Grape API中检查请求主体

来自分类Dev

是否可以过滤对Grape API请求的参数?

来自分类Dev

Rails Grape API版本控制模块结构

来自分类Dev

向Grape API提出的Rails阻止其他请求

来自分类Dev

rails-grape api错误调用版本为api的类

来自分类Dev

rails:使用sw而不是swagger文档中的https而不是https的grape-swagger-rails API请求

来自分类Dev

在Grape and Rails上按API版本更改视图模板

来自分类Dev

在Grape and Rails上按API版本更改视图模板

来自分类Dev

rspec 验收测试中 Grape API 的哈希参数

来自分类Dev

Grape:从无效的JSON救援

来自分类Dev

Bing Ads API:帐户ID无效

来自分类Dev

Instagram API 媒体端点“无效媒体 ID”

来自分类Dev

Rails:Grape API-NameError:未初始化的常量API

来自分类Dev

Rails 4和Grape-拆分API文件时未定义的方法“调用”

来自分类Dev

使用Grape构建Rails API,但发布JSON时出现问题

来自分类Dev

Rails Grape show 404页

来自分类Dev

如何覆盖Grape API响应有效负载中的根密钥?

来自分类Dev

如何在Grape-api Rails应用程序上获取远程IP(请求者)

来自分类Dev

Grape API(swagger doc)-'desc'的全局配置

来自分类Dev

使用Nginx / Passenger部署Grape API

来自分类Dev

如何传递哈希到Grape API方法?

来自分类Dev

grape api会忽略PUT / POST参数

来自分类Dev

将ApplicationController继承到Grape-API

来自分类Dev

Grape API-如何发布嵌套资源?

来自分类Dev

Grape的API密钥身份验证

来自分类Dev

Ember.js POST请求从服务器(Grape API)返回400,但已成功存储到本地存储中

来自分类Dev

从云端功能呼叫自动ml API时资源ID无效

来自分类Dev

易趣汽车api-类别无效。ID 33562

Related 相关文章

热门标签

归档