0

我有一个应用程序查询主机名:端口以获取某些服务,即 Web 服务。在开发过程中,一些服务不可用或由第三方构建,因此为了开发我们的应用程序,我正在考虑使用带有soapUI的模拟服务作为某些服务的存根。

问题是我只能将我的应用程序指向一个方向一次,所以如果我指向模拟服务,我需要确保模拟服务正在模拟所有服务(> 50),这是太多的开销。因此,我正在考虑将我的应用程序指向代理服务器,该代理服务器会将一些请求重定向到模拟服务并保留给实际的服务提供者。有什么办法可以通过一个简单的脚本来做到这一点?

4

1 回答 1

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(或基于其他内容,如果需要)选择将任何给定请求分派到哪个应用程序。

于 2013-03-26T20:43:30.193 回答