EC-CUBE / EC-CUBE/ec-cube

Web API仕様

Open
#4,447 19 comments 2 reactions 0 assignees View on GitHub
affected:外部仕様 enhancement Status: discussion
Dominant language
PHP
Stars
788
Forks
719
Avg merge
4d 4h
Merged PRs (30d)
39

Description

# 概要(Overview)
外部サービスと連携するためWeb API機能検討する。
プラグインではなく、本体の機能として組み込みたい。

## API仕様
[GraphQL](https://graphql.org/) によるWeb APIを提供する。
GraphQLの仕様に従ってQueryとMutationについて考える。

### Query
データを取得するためのQueryとしては、管理画面にある以下の一覧を提供する。

- 商品一覧
- 受注一覧
- 会員一覧

それぞれの一覧はクライアントのクエリに対して、Entityの関連に基づいたデータを返す。

例えば、商品一覧において、商品ID/ステータス/商品規格のコード/販売価格を要求するには以下のようなクエリを実行する。

```
{
products {
id
name
ProductClasses {
id
code
price02
stock
}
Status {
id
name
}
}
}
```
この場合、EC-CUBEは以下のようなレスポンスを返す。

```
{
"data": {
"products": [
{
"id": "1",
"name": "彩のジェラートCUBE",
"ProductClasses": [
{
"id": "1",
"code": "cube-01",
"price02": 110000,
"stock": null
},
{
"id": "2",
"code": "cube-01",
"price02": 110000,
"stock": null
}
],
"Status": {
"id": "1",
"name": "公開"
}
},
{
"id": "2",
"name": "チェリーアイスサンド",
"ProductClasses": [
{
"id": "11",
"code": "sand-01",
"price02": 2800,
"stock": 100
}
],
"Status": {
"id": "1",
"name": "公開"
}
}
]
}
}
```

プラグインなどによるカスタマイズでQueryを追加できる仕組みも提供する。

### Mutation
データの変更を行うMutationについては、ビジネスロジックに基づいたユースケースを決定し提供する。
ユースケースについては要検討。

プラグインなどによるカスタマイズでMutationを追加できる仕組みも提供する。

## 認可
Web APIの認可方法として OAuth 2.0 を提供する。

## Webhooks
EC-CUBEのデータ変更をリアルタイムに他システムへ通知するための仕組みとしてWebhookを提供する。
GraphQLで提供するQueryに合わせて以下の情報が変更された場合に通知する。

- 商品情報
- 受注情報
- 会員情報

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.