我有一个应用程序查询hostName:端口以获取某些服务,即web服务。在开发期间,第三方无法使用或正在构建某些服务,因此开发我的应用程序我正在考虑使用带有soapUI的mockservices作为某些服务的存根。
问题是我只能将我的应用程序指向一个方向,所以如果我指向模拟服务,我需要确保模拟服务模拟所有服务(> 50),这太过分了高架。因此,我正在考虑将我的应用程序指向一个代理服务器,该服务器将一些请求重定向到模拟服务并保留给实际的服务提供者。有什么方法可以通过一个简单的脚本来做到这一点吗?
答案 0 :(得分:2)
不确定。使用Perl的粗略草图:
#!perl
use strict;
use warnings;
use Plack::App::Proxy;
my $live_proxy = Plack::App::Proxy->new(
remote => "http://live.soap.service.com:80/"
);
my $soapui_proxy = Plack::App::Proxy->new(
remote => "http://localhost:4567/"
);
sub {
my $env = shift;
if ($env->{REQUEST_URI} =~ m[^/some/path]) {
return $soapui_proxy->($env);
} else {
return $live_proxy->($env);
}
};
安装Plack并将其作为plackup filename
运行。它构建了两个代理应用程序,一个用于将所有请求转发到实时服务URL,另一个用于将所有请求转发到模拟服务URL。然后,包装器应用程序根据URL选择要发送任何给定请求的应用程序(或者根据需要基于其他内容)。