EC-CUBEのAjax APIを使う
EC-CUBE 2.12からAjaxで使う用のAPIがコソッと入ってるんですね。
リリースアナウンスとかではまったく触れられてなかったので、
ソース見るまでまったく気付かなかった。。。
使い方を解説してるページとかも全然見付からないので、
使い方を簡単に書いてみることにしました。
## リクエストURL
APIリクエストを送るためのURLは、以下の形式になります。
http://ホスト名/api/出力フォーマット.php
出力フォーマットとしては、以下の3種類が使えます。
フォーマット | 説明 |
---|---|
json | JSON形式でレスポンスを返す |
xml | XML形式でレスポンスを返す(デフォルト) |
php | PHPのデータをserialize()したものを返す |
例えばリクエストをJSONで受け取りたい時は、URLは以下のようになります。
http://examples.com/api/json.php
## リクエストパラメータ
具体的にどのようなオペレーションを要求するかは、
POSTで送信したパラメータによって決まります。
また、オペレーションの内容によっては認証を要求される場合もあります(設定で変更可)。
まずは全オペレーション共通のパラメータは、以下の2つです。
パラメータキー | 説明 |
---|---|
Operation | オペレーションの種類を指定 |
Service | 必須キーなので指定しないとエラーになるが、何も使われていな いので適当な値を渡せば良い |
EC-CUBE 2.12.2の時点では、以下のようなオペレーションが可能です。
オペレーション | 認証の必要性 | 説明 |
---|---|---|
GetVersion | 不要 | EC-CUBEのバージョンを取得出来る。テスト用途などに。 |
ItemLookup | 不要 | 商品ID等をキーに商品データを取得 |
ItemSearch | 不要 | 商品データを検索 |
BrowseNodeLookup | 不要 | 商品カテゴリを指定して商品データを取得 |
CartCreate | 要 | カートの新規作成 |
CartAdd | 要 | カートへの商品追加 |
CartGet | 要 | カートの取得 |
CartModify | 要 | カートの修正 |
CartClear | 要 | カートのクリア |
## 実際に使ってみる
cURLで実際にAPIを叩いて、一番簡単なオペレーションである GetVersion を使ってみます。
$ curl -d ‘Operation=GetVersion’ -d ‘Service=none’ http://examples.com/api/xml.php
Serviceにはnoneという値を渡してますが、ここは何でもいいです。
チェックされてないので。
正しく値が返って来る時は <IsValid>True</IsValid> となってます。
今度はエラーとなるリクエストを送ってみます。
$ curl -d ‘Operation=GetVersion’ http://examples.com/api/xml.php
Service
今度は <IsValid>False</IsValid> が返って来ました。
## 他のオペレーションについて
続く…
– [EC-CUBEのAjax APIを使う(2) −−− 商品情報取得](http://lovepeers.org/2012/10/01/using-eccube-api-2/)
– [EC-CUBEのAjax APIを使う(3) −−− カート操作](http://lovepeers.org/2012/10/15/using-eccube-api-3/)