我正在为我的应用做一个API。
目前,您可以按预期调用api/v1/clients
并重新获取客户端JSON。您也可以执行api/v1/clients?client_id=1
并使用id
1获取Client对象的JSON表示。
这是我的API::V1::ClientsController
:
class API::V1::ClientsController < ApplicationController
def index
if params[:client_id]
@client = Client.find(params[:client_id])
render template: 'api/v1/clients/show'
else
@clients = Client.all
end
end
end
我想要的是,例如,如果您在端点(api/v1/clients?clent_id=1
)上有拼写错误,那么应用会返回一个带有错误的JSON对象:
{
error: {
error_code: 10,
error_description: "Bad endpoint"
}
}
有没有办法在params上发表switch
声明来处理可能的情况?
答案 0 :(得分:0)
我的建议:
在您的控制器中创建一个私有方法,这个方法会检查您的params
:
params
为空,则返回false
params
包含'client_id'
且其值为数字,则返回值然后在动作方法中使用此结果:
false
,则显示所有结果至于例外:您使用rescue_from
来显示&#34;坏端点&#34; JSON响应