APIプラグインではデータをGraphiQLで取得可能ですが、どんなデータでも取得できるとセキュリティ的に問題があるため、許可リストの仕組みで制限されています。
今回はよくある要望として、メルマガプラグインのフラグを取得する方法をご紹介します。
プラグインの追加項目についてはプラグイン側で許可リストに追加していない限り、取得することができません。
許可リストには、services.yamlに次のような記載をすることで登録可能です。
app/Customize/Resource/config/services.yaml (ファイルがなければ新規作成)
services: mailmagazine4.api.allow_list: class: ArrayObject tags: ['eccube.api.allow_list'] arguments: - # Eccube\Entity\Customer: ['mailmaga_flg']
GraphiQL実行してみると
次のGraphiQLを実際に実行してみます。
query {
# 会員一覧を取得
customers(limit: 5, page: 1) {
edges {
node {
name01
name02
email
point,
mailmaga_flg
}
}
nodes {
name01
name02
email
point
}
totalCount
pageInfo {
hasNextPage
hasPreviousPage
}
}
}
修正前
Cannot query field “mailmaga_flg” on type “Customer”.というエラーが発生
修正後
Customer.mailmaga_flgを取得できます。
参考サイト
EC-CUBE4 Web API プラグイン 開発ドキュメント
EC-CUBEに関するお問い合わせ
[重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。