Web APIって...

なんかXMLをごりごり書いて投げるものかと思っていた

人力検索はてなおとなり質問API


  question.getSimilarQuestion
  
    
      
        
          
            content
            代官山付近でおいしいランチを食べられるお店を教えてください。
          
        
      
    
  

こんな階層の深いXML書いてられっかー,と思ったら,

my $content = '代官山付近でおいしいランチを食べられるお店を教えてください。';

my $res = XMLRPC::Lite
    ->new
    ->proxy('http://q.hatena.ne.jp/xmlrpc')
    ->call(
        'question.getSimilarQuestion',
        {
            content => XMLRPC::Data->type( 'string', $content ),
            threshold => 2,
            limit => 5,
        });

なんかこう書くだけでいいみたいだ.XMLRPCってやつか

で,これに対するレスポンスは


  
    
      
        
          
            
              
                
                  qid
                  1108690883
                
                
                  content
                  渋谷、代官山、恵比寿近辺のランチで...(以下略)

こんな長いXMLを解析してられっかーと思ったら

for ( @{$res->result} ) {
        printf "%9s : %s\n", 'qid', $_->{qid};
        printf "%9s : %s\n", 'uri', $_->{uri};
        printf "%9s : %s\n", 'content', $_->{content};
        print "----\n";
    }

だけでよいみたいだ