Ticket #1604 (closed 新規開発: 修正済)

Opened 9 years ago

Last modified 8 years ago

外部連携用APIの実装

Reported by: AMUAMU Owned by: AMUAMU
Priority: Milestone: EC-CUBE2.12.3
Component: フロント Version: 2.12.0 α
Keywords: Cc:
修正済み: yes

Description (last modified by AMUAMU) (diff)

外部システムや外部サービス等とのシステム連携を容易に実現出来るようなAPI機能を標準機能として実装する。

●機能概要

「Amazon Product Advertising API https://images-na.ssl-images-amazon.com/images/G/09/associates/paapi/dg/index.html」の仕様を元に、EC-CUBE用に実装。

●主な差異点

1.リクエストはREST APIのみ実装

Amazon APIと同名・基本リクエスト型が同じである対応するOperationは下記

Operation概要備考
BrowseNodeLookup?カテゴリ参照
ItemLookup?商品詳細参照
ItemSearch?商品検索
CartAdd?カートへの追加(未動作)
CartClear?カートのクリア(未動作)
CartCreate?カートの作成(未動作)
CartGet?カート情報の取得(未動作)
CartModify?カートの修正(未動作)

リクエストパラメーターのうち、オプションのものは、ほとんどが非対応(EC-CUBEには対応する情報が無いため)

2.レスポンスはXML。EC-CUBE独自追加でJSON,PHP Serialize TEXTを追加。

XMLの接続先: HTTP_URL . '/api/xml.php'
JSONの接続先: HTTP_URL . '/api/json.php'
PHP Serializeの接続先: HTTP_URL . '/api/php.php'

3.各種パラメーターのうち不要なものを削除

(後日記述)

4.レスポンスグループ仕様の変更

構造のうち外形のみはAmazon相当とし、attributes項目はEC-CUBE仕様としている。
URL等EC-CUBEであるがため、最低限必要な項目は修正している。
例)ASN ⇒ product_id

5.EC-CUBE独自のOperationの追加

Operation概要備考
GetVersion?EC-CUBEバージョン
AddrFromZip?郵便番号から住所を取得
and more..

●セキュリティ系

EC-CUBE独自のセキュリティ構造を用いている。
現在サポートされているAPIアクセス権限は下記を複合して利用可能

    const API_AUTH_TYPE_REFERER = '1';          // リファラー
    const API_AUTH_TYPE_SESSION_TOKEN = '2';    // CSRF TOKEN
    const API_AUTH_TYPE_API_SIGNATURE = '3';    // API 署名認証 推奨
    const API_AUTH_TYPE_CUSTOMER = '4';         // 会員認証
    const API_AUTH_TYPE_MEMBER = '5';           // 管理者認証
    const API_AUTH_TYPE_CUSTOMER_LOGIN_SESSION = '6';   // 顧客ログインセッションが有効
    const API_AUTH_TYPE_MEMBER_LOGIN_SESSION = '7';     // 管理者ログインセッションが有効
    const API_AUTH_TYPE_IP = '8';               // IP認証
    const API_AUTH_TYPE_HOST = '9';             // ホスト認証
    const API_AUTH_TYPE_SSL = '10';             // SSL強制
    const API_AUTH_TYPE_OPEN = '99';            // 完全オープン

API毎にプログラムデフォルトがあり、設定はdtb_api_config が上位として扱われる

Change History

comment:1 Changed 9 years ago by AMUAMU

  • Status changed from new to assigned

comment:2 Changed 9 years ago by h_yoshimoto

  • Priority changed from to

comment:3 Changed 8 years ago by AMUAMU

  • Description modified (diff)

comment:4 Changed 8 years ago by AMUAMU

  • Description modified (diff)

comment:5 Changed 8 years ago by AMUAMU

  • Description modified (diff)

comment:6 Changed 8 years ago by AMUAMU

APIの動作検証、テスト、サンプルを兼ねたプログラムを用意しました。 r21722 test/api_test.php

comment:7 Changed 8 years ago by AMUAMU

  • Description modified (diff)

comment:8 Changed 8 years ago by h_yoshimoto

  • Milestone changed from EC-CUBE2.12.2 to EC-CUBE 2.12.3

comment:9 Changed 8 years ago by kim

AMUAMU様

長らくおいてしまっており、申し訳ございません。 こちらの実装状況、残課題をお教えいただけますでしょうか。

comment:10 Changed 8 years ago by h_yoshimoto

  • Status changed from assigned to closed
  • 修正済み set
  • Resolution set to 修正済

#2102 に新規チケットを作成し、本チットはクローズさせて頂きます。

Note: See TracTickets for help on using tickets.