cakePHPでSOAPする
ウェブサービス系第2弾と言う事で、前回の価格.com APIサンプルに続き、今回は、Amazon ECSを題材にしたSOAPのサンプルです。前回同様、検索して、結果を表示する流れを紹介したいと思います。
今回は、amazonと言う名前のモデルを作成し、そこにItemSearchのSOAPインターフェースを実装します。とは言うものの、非常に簡単です。
Model ( models/amazon.php )
[PHP]
class Amazon extends AppModel {
var $useTable = false;
function search ($keyword) {
$client = new SoapClient(“http://webservices.amazon.com/AWSECommerceService/JP/AWSECommerceService.wsdl”);
$params = array(‘Request’ => array( ‘Keywords’ => $keyword,
‘ItemPage’ => 1,
‘SearchIndex’ => ‘Music’,
‘ResponseGroup’ => ‘Medium’,
),
‘AssociateTag’ => ‘masahikosatoh-22′,
‘AWSAccessKeyId’ => ‘自分のアソシエイトキーID’);
return $client->ItemSearch($params);
}
}
[/PHP]
モデルにSOAP部分を実装してしまっているので、コントローラーはただ検索するだけです。
Controller ( controllers/amazons_controller.php )
[PHP]
function index () {
if ( !isset( $this->data ) ) return;
$this->set( ‘data’, $this->Amazon->search( $this->data['Amazon']['keyword'] ) );
}
[/PHP]
View ( views/amazons/index.ctp )
[PHP]
Amazon検索
echo $form->create( ‘Amazon’, array( ‘action’ => ‘index’ ) );
echo $form->input( ‘keyword’ );
echo $form->end( ‘検索’ );
?>
if ( isset( $data ) ) {
foreach ( $data->Items->Item as $item ) {
echo ‘
echo $html->link( $item->ItemAttributes->Title, $item->DetailPageURL ).’
‘;
if ( isset( $item->MediumImage ) ) echo $html->image( $item->MediumImage->URL ).’
‘;
echo ‘
‘;
}
}
?>
[/PHP]
これで、こんな感じになります。
見た目は別として、これで簡単にSOAPクライアントを実装する事ができました。
以下、参考にしたサイト様
Posted in: 未分類
コメントする


