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=...