有没有一种方法来处理西纳特拉GET请求,并与不同的身体在同一个服务器上的补丁要求? 用户发出请求GET /clean_beautiful_api
和服务器重定向到PATCH /dirty/clogged_api_url_1?crap=2 "{request_body: 1}"
我想清理遗留API不与功能相冲突。
有没有一种方法来处理西纳特拉GET请求,并与不同的身体在同一个服务器上的补丁要求? 用户发出请求GET /clean_beautiful_api
和服务器重定向到PATCH /dirty/clogged_api_url_1?crap=2 "{request_body: 1}"
我想清理遗留API不与功能相冲突。
如果我理解正确的话,最简单的方法是提取用于块patch
到一个帮手:
patch "/dirty/clogged_api_url_1"
crap= params[:crap]
end
至:
helpers do
def patch_instead( params={} )
# whatever you want to do in here
crap= params[:crap]
end
end
get "/clean_beautiful_api" do
patch_instead( params.merge(request_body: 1) )
end
patch "/dirty/clogged_api_url_1"
patch_instead( params )
end
或者你可以使用lambda ...
Patch_instead = ->( params={} ) {
# whatever you want to do in here
crap= params[:crap]
}
get "/clean_beautiful_api" do
Patch_instead.call( params.merge(request_body: 1) )
end
# you get the picture
更主要的是提取方法到别处,然后调用它。
编辑:您还可以触发另一路在内部使用机架接口通过call
。