python/perl/shell脚本中的条件代理服务器

2024-05-16 23:54:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个应用程序可以查询主机名:端口一些服务,一个网络服务。在开发过程中,有些服务不可用或由第三方构建,因此为了开发我们的应用程序,我考虑使用mockservices和soapUI作为一些服务的存根。

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


Tags: 端口应用程序过程service方向mock重定向存根
1条回答
网友
1楼 · 发布于 2024-05-16 23:54:13

当然可以。使用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(或者根据其他内容,如果需要)选择将任何给定请求发送到哪个应用程序。在

相关问题 更多 >