Web API の処理結果 XML を JSONP 形式に変換するプロキシーCGI
2012-11-07-2
[Programming]
車輪の再発明的で超既出ですが、クロスドメイン問題へのad hocな対策として、Web API の処理結果 XML を JSONP 形式に変換するプロキシーCGIを作ってみました。いろいろあれなので、100%自己責任でご利用ください。設置URLは公開しない方が良いかと。
以下、コード (xml2json.cgi):
使い方:
以下、コード (xml2json.cgi):
#!/usr/bin/perl -T
use strict;
use warnings;
use CGI;
use LWP::Simple;
use XML::Simple;
use JSON;
use Encode;
use utf8;
binmode STDOUT, ":utf8";
my $url = $ENV{'QUERY_STRING'};
$url = shift @ARGV if not $url;
my $cb = ($url =~ s/^(.+?),http/http/) ? $1 : "";
my $response = LWP::Simple::get($url);
$response = Encode::encode_utf8($response);
my $xmlsimple = XML::Simple->new();
my $xml = $xmlsimple->XMLin($response);
print "Content-Type: application/json; charset=utf-8\n\n";
if ($cb) {
print "$cb(".JSON::to_json($xml).")\n";
} else {
print JSON::to_json($xml)."\n";
}
使い方:
http://[PROXY_URL]?[CALLBACK],[REQUEST_URL] http://example.com/xml2json.cgi?func,https://yapi.ta2o.net/apis/mecapi.cgi?sentence=...
