引き続き API プラグインについての調査です。
今回はAPIプラグインに内包されている簡易テスト機能の動作確認です。
中でも「CRUD」側につい見ていきたいと思います。
「CRUD」側のテスト機能に関しては大きく分けると以下の機能になっています。
■商品情報
▼【GET】商品一覧情報取得
「dtb_product」の一覧を取得します。
特に指定は何もありません。
実行すると商品一覧となる情報が表示されます。
他の機能もそうですが結果は基本的に JSON 形式で表示されます。
システム的にはこちらの方が勿論助かるのですがパット見は分かり難いですね(笑)
▼【POST】商品情報登録
「dtb_product」に商品情報を登録することが出来ます。
例として以下のように記述します。
{ "name": "商品名", "note": "備考", "description_list": "商品一覧に表示する説明", "description_detail": "商品詳細に表示する説明", "search_word": "検索キーワード", "free_area": "フリーワード", "del_flg": 0, "Creator": { "id": 2 }, "Status": { "id": 1 } }
まぁ、商品登録に関しては管理画面からやった方が良い気はするのですが・・・
完全にアプリとして動作させる場合などは難しいのでしょうか。
▼【DELETE】商品情報削除(論理削除)
「dtb_product」から商品情報を論理削除します。
論理削除の為、最悪データベースを修正することで戻すことが出来ます。
まぁ、管理画面でも同じですが・・・
削除する場合には商品IDを指定する形です。
商品カテゴリとのリレーションなどは特に削除されていないように見えます。
▼【GET】商品詳細情報取得
「dtb_product」から指定して商品詳細を取得します。
指定は商品IDです。
実行すると指定した商品の詳細情報が表示されます。
一通りの情報は取得できているようですね。
ただ、商品企画情報や商品画像に関しては 各ID しか取得されません。
取得した ID を元に別途取得する必要があります。
幾つかの機能に関しては連動して取得できるようにしてくれると有難いのですが・・・
▼【PUT】商品情報変更
「dtb_product」の商品情報を変更することが出来ます。
対象商品は商品IDをしていただ上で、以下のように記述します。
{ "name": "商品名", "note": "備考", "description_list": "商品一覧に表示する説明", "description_detail": "商品詳細に表示する説明", "search_word": "検索キーワード", "free_area": "フリーワード", "del_flg": 0, "Creator": { "id": 2 }, "Status": { "id": 1 } }
商品情報の変更は可能ですが商品企画情報は別途変更する必要があるようです。
画像に関してはデータベースの問題だけではなくアップロードの問題もありますね。
■商品カテゴリ情報
▼【GET】商品カテゴリ一覧情報取得
「dtb_product_category」の一覧を取得します。
実際には商品とカテゴリの紐づけ情報です。
指定する情報はありません。
今回はサンプルと云うことで情報取得の処理を作成されていますが
どのような機会に使用するかは微妙です(笑)
▼【POST】商品カテゴリ情報登録
「dtb_product_category」に商品情報とカテゴリ情報の紐づけを新規作成します。
例として以下のように記述します。
{ "product_id": 2, "category_id": 5, "rank": 10, "Product": { "id": 2 }, "Category": { "id": 5 } }
商品とカテゴリの紐づけを別個に作業すると云う事なので、アプリにて更新する場合は要注意ですね。
▼【GET】商品カテゴリ詳細情報取得(カテゴリと商品の複合検索)
「dtb_product_category」から商品情報とカテゴリ情報の複合検索をして情報を取得します。
指定する内容としては商品IDとカテゴリIDの二つの項目です。
指定項目が二つになりますが指定した情報のデータが取得できます。
このままではカテゴリに存在しているかの確認に使う形でしょうか。
▼【PUT】商品カテゴリ詳細情報変更(カテゴリと商品の複合検索)
「dtb_product_category」から商品情報とカテゴリ情報の複合検索をして情報を変更します。
指定する内容としては商品IDとカテゴリIDの二つの項目です。
指定したIDに対して以下のように記述します。
{ "product_id": 2, "category_id": 5, "rank": 10, "Product": { "id": 2 }, "Category": { "id": 5 } }
情報変更を行う場合はこんな感じですが、見てみると rank ぐらいしかないです。
なんだか微妙ですね。
今回の仕様だと対象のテーブルは削除も出来ない気がするのですがどうするんでしょうか。
今回の内容は「CRUD」の基本機能を試すためのテストの為、実際に使うよりも、サンプル例ととらえるべきですね。
実際にテスト内容を踏まえて気になるところは実際の購入処理をどうするのかです。
現時点では「CRUD」の通りテーブルに対してのよりが基本になります。
実際の購入処理は非常に複雑にテーブルが入り組んできます。
上記の処理をすべてのテーブルに対して行っていくのは大変です。
現時点のAPIについてどの程度のグループよりをして頂けるかで運用可能かどうかになるのかと思います。
・商品購入
・会員登録
・受注管理 など
受注管理などは結局EC-CUBEの管理画面を使用するのが手軽な手段にはなりそうです。
とは云え商品購入やマイページなど公開画面に関してはもう少し優しい作りになって欲しいなぁ・・・
と云うことで今回はここまでとさせて頂きます。