-
Notifications
You must be signed in to change notification settings - Fork 653
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Web API仕様 #4447
Comments
商品/受注/会員のQueryを実装してみました。 |
3系Issueはこちら |
細かいところですが、 OAuth2.0 では認可のためのフレームワークですので、認証であれば Open ID Connect になると思います。 |
更新できていないので折りたたみます。 進捗ニュース主要な機能の正常系の実装が完了 基本的な設計指針
マイルストーン
ベータ版までの進捗
ベータ版の想定形式
正式リリースの想定形式ベータ版リリース後の反応を見て変更になる可能性あり
TODO
|
src/Eccube/GraphQLじゃなくて、API周りはServiceにまとめた方が良く無いですか? ApiServiceにはApiInterfaceとか作って、RESTとかでも同じの使う感じにして |
そうですね、特に認証周りは汎用性あると思うので、プラグインなどでも利用できるような機構にしたいと思っています。 |
webhook をプラグインから登録できるようになると楽しいです。 |
API開発用のブランチを切りました。 |
experimental/apiブランチにGraphQLとOAuth2.0の実装のプルリクを出しました。 |
API開発状況まとめ以下は暫定のものとなり、随時更新をしていきます。 リリーススケジュール
2020/5/28 更新 APIの仕様
GraphQL Mutationの仕様(案)
パラメータ
実行例 # 在庫無制限ではない商品
mutation {
editProductStock (
id: 1
stock: 5
stock_unlimited: false
) {
id
stock
stock_unlimited
}
} # 在庫無制限の商品
mutation {
editProductStock (
id: 1
stock_unlimited: true
) {
id
stock
stock_unlimited
}
}
パラメータ
※注文情報に紐づく全ての出荷情報に出荷日が入れば、その注文情報が出荷済みとなる。 実行例 mutation {
editShippingStatus (
id: 1
shipping_delivery_name: "サンプル宅配"
shipping_date: "2020-01-01"
tracking_number: "tracking0123"
note: "出荷しました。"
) {
id
shipping_delivery_name
shipping_date
tracking_number
note
}
} 懸念
変更履歴
|
現在いただいているフィードバックを一旦洗い出しました。 EC-CUBE4 Web API β フィードバック
|
基幹連携などで在庫などの商品情報を更新する場合は、基幹側にマスタ連携する必要が生じるため、ProductClassId だと使えないです。 |
鍵はデータベースに入れた方が無難かなと |
APIプラグイン化に向けた課題
|
現状EC-CUBEを利用したwebサイトを運営しており、アプリ化を検討しております。 |
@atsuyuki-inui |
@okazy ご回答頂きありがとうございます。エンドユーザ向けのアプリとなります。アプリからGraphQL API(Query、Mutation)を叩いてEC-CUBEの機能を使う想定でいました。仕様が固まるのはいつ頃になりますでしょうか? |
@atsuyuki-inui API関連を抜粋すると以下かと思います。
APIの開発は~9月ですが、プラグインでの提供となり、4.0.5以降でないと使えない可能性があります。 |
APIのプラグイン化に向けたリポジトリが作成されました。 |
概要(Overview)
外部サービスと連携するためWeb API機能検討する。
プラグインではなく、本体の機能として組み込みたい。
API仕様
GraphQL によるWeb APIを提供する。
GraphQLの仕様に従ってQueryとMutationについて考える。
Query
データを取得するためのQueryとしては、管理画面にある以下の一覧を提供する。
それぞれの一覧はクライアントのクエリに対して、Entityの関連に基づいたデータを返す。
例えば、商品一覧において、商品ID/ステータス/商品規格のコード/販売価格を要求するには以下のようなクエリを実行する。
この場合、EC-CUBEは以下のようなレスポンスを返す。
プラグインなどによるカスタマイズでQueryを追加できる仕組みも提供する。
Mutation
データの変更を行うMutationについては、ビジネスロジックに基づいたユースケースを決定し提供する。
ユースケースについては要検討。
プラグインなどによるカスタマイズでMutationを追加できる仕組みも提供する。
認可
Web APIの認可方法として OAuth 2.0 を提供する。
Webhooks
EC-CUBEのデータ変更をリアルタイムに他システムへ通知するための仕組みとしてWebhookを提供する。
GraphQLで提供するQueryに合わせて以下の情報が変更された場合に通知する。
The text was updated successfully, but these errors were encountered: