取得方式変更中

ECS3.0でSOAPを使った場合に文字化けするという問題が一向に解決する気配がありません。しばらくすれば直るのかも知れませんが、今後も何か問題が発生した時に対応まで時間がかかるかもしれないのでECS3.0のSOAPを使うのは止めようと思います。

それじゃあというのでまずはECS4.0のSOAPに挑戦。WSDLを読み込んで見たところDelphiがエラーになってしまいました。Delphi7でダメだったので試しにDelphi2005でやってみてもNG。AmazonDelphiのどちらが悪いのか分かりませんが、自力で解決できそうになかったので諦め。

ということでECS4.0のRESTにすることになりました。XMLを扱うことになるのですが面倒ですね。XPathであればそれほど面倒だとは感じなかったと思いますが、Delphi7の標準のライブラリでは扱えず。

Open XMLだとXPathが使えるらしいです。これを使うか標準の機能で頑張るかどちらにするかですが、標準の機能で頑張ることにしました。頑張るといってもDOMはあまりにも面倒なのでツールを利用。

まずはAmazonからのレスポンスを保存。それをXMLマッパーで読み込みXML Schemaを作成。これをDelphiで読み込めばそれなりに簡単にXMLを扱えるようになるコードのできあがりです。この手順自体はそれほど手間ではないのですが、面倒なのが、Amazonからのレスポンスが商品カテゴリ毎に違っている点。各カテゴリのXMLファイルを元に、最小公倍数的なXMLを作りましたよ。

そんなこんなで、今の時点で個別商品の検索部分はREST化がほぼ終わりました。ついでなのでカスタマレビューの表示数を従来の1から5まで増やしました。