2014-04-18 89 views
0

我想实现一个模拟REST服务,它将接收来自客户端的请求,然后将此请求传递给真正的REST服务器,然后采取该响应并向客户端发回一个削减版本。我想在Linux上运行此,如果在所有可能的,但任何一种编程语言都行,但最好的Ruby/Python的,如果可能的代理服务器,编辑服务器的响应,然后传回客户端

所以基本上:

HTTP GET模拟:8080 /所有/水果/ - > - > (我的模拟/代理REST) - > - > HTTP GET REAL:8080 /所有/水果
回报(apple0 < - < - (我的模拟/代理REST)< - < - 返回(苹果,橘子,bananna)

我已经在网上看了一些解决方案,但似乎无法找到一个提到这一点,并想知道有没有人有任何想法?

+0

可以代理请求nginx的,并在Lua操控内容http://stackoverflow.com/questions/695630/best-method-of-post-processing-nginx-reverse-proxy-response – Marat

回答

0

你可以用Ruby Sinatra非常无痛地破解一些东西。这将采用请求的路径,使用curl从真实服务器获取响应,并将其传回给请求客户端。如果您试图将内容类型与text html以外的内容类型相匹配,那么您需要更多的处理。反引号会给你一个文本字符串来自系统命令的输出。

require 'sinatra' 

REAL_SERVER = "host:port" 

def my_processing(input_data) 
    # do stuff 
end 

get '/*' do |path| 
    real_return = `curl #{REAL_SERVER}/#{path}` 
    my_processing(real_return) 
end 
+0

西纳特拉确实做到了我需要感谢mattwise – morrrowgi