REST とは、REpresentational State Transfer の略で、クライアントが HTTP の GET または POST でリクエストした内容を、サーバ通常の HTML ページの代わりに XML ドキュメントで返すもののことである。つまりは SOAP を使わなくてもサーバからクライアントがデータを受信するようなもので、従来の HTTP の Request - Response のスキームは何ひとつ変わらない。なので決して難しいことはない。
アマゾン・アソシエイトで、商品の画像だけ表示する方法は述べた通りだが、現在の価格を表示したり、「24時間以内に発送可能」 などの在庫状況を表示したりするにはどうしたらいいのだろう?たとえば、以下のように表示したい場合である。
必要な情報・手順としては以下の通りである。
- アマゾン・アソシエイトの ID を取得する。
- Amazon Web サービスの Access Key ID を取得する。
- XSLT を用意する。
- 商品リンクの URL を作成する。
- リンクを自分のサイトに貼り付ける。
まず、XSLT を作成し、自分のサイトのどこか(たとえば、
https://perltips.twinkle.cc/amazon_price.xsl)に保存しておく。
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="https://www.w3.org/1999/XSL/Transform" xmlns:aws="https://webservices.amazon.com/AWSECommerceService/2006-03-08" exclude-result-prefixes="aws" version="1.0">
<xsl:output method="html" encoding="utf-8"/>
<xsl:template match="/">
<xsl:apply-templates select="aws:ItemLookupResponse/aws:Items/aws:Item/aws:Offers/aws:Offer/aws:OfferListing"/>
</xsl:template>
<xsl:template match="aws:OfferListing">
<xsl:variable name="ourprice" select="aws:Price/aws:FormattedPrice"/>
<xsl:variable name="availavility" select="aws:Availability"/>
<html lang="ja">
<head>
</head>
<body bgcolor="#FFFFFF">
<font size="-1" color="#990000">
<b><xsl:value-of select="$ourprice"/></b><br/>
</font>
<font size="-1" color="#333333">
<xsl:value-of select="$availavility"/>
</font>
<br/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
あとは、以下の URL からアクセスするだけである。
<table border="0" cellpadding="5"><tr><td valign="top">
<a
href="https://www.amazon.co.jp/exec/obidos/ASIN/<font color="blue">4534033427</font>/<font color="blue">twinklexxx-22</font>/ref=nosim/"
target="_blank">
<img src="https://images.amazon.com/images/P/<font color="blue">4534033427</font>.09._SCMZZZZZZZ_.jpg"
border="0"
alt="4534033427" /></a></td>
<td valign="top"><font size="-1">
<a
href="https://www.amazon.co.jp/exec/obidos/ASIN/<font color="blue">4534033427</font>/<font color="blue">twinklexxx-22</font>/ref=nosim/"
target="_blank"><font color="blue">試験に受かる超効率勉強法</font></a><br />
<font color="blue">井藤 公量</font><br /><br />
<font color="blue">日本実業出版社 2002-01</font><br />
<iframe scrolling="no"
frameborder="0"
width="200" height="40"
hspace="0"
vspace="0"
marginheight="0"
marginwidth="0"
src="https://xml-jp.amznxslt.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=<font color="blue"> 152ZP71KPB47XM09CS02</font>&AssociateTag=<font color="blue">twinklexxx-22</font>&Operation=ItemLookup&IdType=ASIN&ContentType=text/html&Version=2006-03-08&Page=1&ResponseGroup=Offers&ItemId=<font color="blue">4534033427</font>&Style=<font color="blue">https://perltips.twinkle.cc/amazon_price.xsl</font>"></iframe><br /><a href="https://www.amazon.co.jp/exec/obidos/ASIN/<font color="blue">4534033427</font>/<font color="blue">twinklexxx-22</font>/ref=nosim/"
target="_blank">Amazonで詳しく見る</a>
</font><font size="-2"></font>
</td></tr></table>
この中で、REST として AWS (Amazon Web Services) に渡す重要なパラメータは以下の通り。
青字は、自分の環境に合わせて変更する部分である。
- Operation=ItemLookup
- IdType=ASIN
- ContentType=text/html
- Version=2006-03-08
- Page=1
- ResponseGroup=Offers
- AWSAccessKeyId=152ZP71KPB47XM09CS02
- AssociateTag=twinklexxx-22
- Style=https://perltips.twinkle.cc/amazon_price.xsl
- ItemId=4534033427
REST とは、REpresentational State Transfer の略で、クライアントが HTTP の GET または POST でリクエストした内容を、サーバ通常の HTML ページの代わりに XML ドキュメントで返すもののことである。つまりは SOAP を使わなくてもサーバからクライアントがデータを受信するようなもので、従来の HTTP の Request - Response のスキームは何ひとつ変わらない。なので決して難しいことはない。
アマゾン・アソシエイトで、商品の画像だけ表示する方法は述べた通りだが、現在の価格を表示したり、「24時間以内に発送可能」 などの在庫状況を表示したりするにはどうしたらいいのだろう?たとえば、以下のように表示したい場合である。
必要な情報・手順としては以下の通りである。
- アマゾン・アソシエイトの ID を取得する。
- Amazon Web サービスの Access Key ID を取得する。
- XSLT を用意する。
- 商品リンクの URL を作成する。
- リンクを自分のサイトに貼り付ける。
まず、XSLT を作成し、自分のサイトのどこか(たとえば、
https://perltips.twinkle.cc/amazon_price.xsl)に保存しておく。
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="https://www.w3.org/1999/XSL/Transform" xmlns:aws="https://webservices.amazon.com/AWSECommerceService/2006-03-08" exclude-result-prefixes="aws" version="1.0">
<xsl:output method="html" encoding="utf-8"/>
<xsl:template match="/">
<xsl:apply-templates select="aws:ItemLookupResponse/aws:Items/aws:Item/aws:Offers/aws:Offer/aws:OfferListing"/>
</xsl:template>
<xsl:template match="aws:OfferListing">
<xsl:variable name="ourprice" select="aws:Price/aws:FormattedPrice"/>
<xsl:variable name="availavility" select="aws:Availability"/>
<html lang="ja">
<head>
</head>
<body bgcolor="#FFFFFF">
<font size="-1" color="#990000">
<b><xsl:value-of select="$ourprice"/></b><br/>
</font>
<font size="-1" color="#333333">
<xsl:value-of select="$availavility"/>
</font>
<br/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
あとは、以下の URL からアクセスするだけである。
<table border="0" cellpadding="5"><tr><td valign="top">
<a
href="https://www.amazon.co.jp/exec/obidos/ASIN/<font color="blue">4534033427</font>/<font color="blue">twinklexxx-22</font>/ref=nosim/"
target="_blank">
<img src="https://images.amazon.com/images/P/<font color="blue">4534033427</font>.09._SCMZZZZZZZ_.jpg"
border="0"
alt="4534033427" /></a></td>
<td valign="top"><font size="-1">
<a
href="https://www.amazon.co.jp/exec/obidos/ASIN/<font color="blue">4534033427</font>/<font color="blue">twinklexxx-22</font>/ref=nosim/"
target="_blank"><font color="blue">試験に受かる超効率勉強法</font></a><br />
<font color="blue">井藤 公量</font><br /><br />
<font color="blue">日本実業出版社 2002-01</font><br />
<iframe scrolling="no"
frameborder="0"
width="200" height="40"
hspace="0"
vspace="0"
marginheight="0"
marginwidth="0"
src="https://xml-jp.amznxslt.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=<font color="blue"> 152ZP71KPB47XM09CS02</font>&AssociateTag=<font color="blue">twinklexxx-22</font>&Operation=ItemLookup&IdType=ASIN&ContentType=text/html&Version=2006-03-08&Page=1&ResponseGroup=Offers&ItemId=<font color="blue">4534033427</font>&Style=<font color="blue">https://perltips.twinkle.cc/amazon_price.xsl</font>"></iframe><br /><a href="https://www.amazon.co.jp/exec/obidos/ASIN/<font color="blue">4534033427</font>/<font color="blue">twinklexxx-22</font>/ref=nosim/"
target="_blank">Amazonで詳しく見る</a>
</font><font size="-2"></font>
</td></tr></table>
この中で、REST として AWS (Amazon Web Services) に渡す重要なパラメータは以下の通り。
青字は、自分の環境に合わせて変更する部分である。
- Operation=ItemLookup
- IdType=ASIN
- ContentType=text/html
- Version=2006-03-08
- Page=1
- ResponseGroup=Offers
- AWSAccessKeyId=152ZP71KPB47XM09CS02
- AssociateTag=twinklexxx-22
- Style=https://perltips.twinkle.cc/amazon_price.xsl
- ItemId=4534033427