質問 > その他 > プロキシサーバーとfetchAPIを使用して、静的LPサイトにECCUBEの商品情報を出力したい |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
koh_msk |
投稿日時: 2024/4/8 22:44
対応状況: −−−
|
新米 登録日: 2023/9/18 居住地: 投稿: 4 |
プロキシサーバーとfetchAPIを使用して、静的LPサイトにECCUBEの商品情報を出力したい ▼テンプレート
[EC-CUBE] 4.2.1 [PHP] 7.4.33 [導入プラグインの有無] EC-CUBE Web API プラグイン [やりたいこと] fetchAPIを使用して、EC-CUBEの商品情報を取得したい。 [現状] ・アクセストークンの取得(開発環境でfetchAPIのデータ取得の際に認証が必要だったため、EC-CUBEのOAuth管理からクライアントAPIを登録し対応) ・CORS回避のためプロキシサーバーを設定。 ・その後Postmanでデータの取得は確認済み。 【プロキシサーバーのコード】 const express = require('express'); const { createProxyMiddleware } = require('http-proxy-middleware'); const cors = require('cors'); // CORSパッケージのインポート const app = express(); // CORSミドルウェアの使用。すべてのオリジンからのアクセスを許可する設定です。 app.use(cors()); // プロキシ設定 app.use('/api', createProxyMiddleware({ target: 'EC-CUBE APIのホスト名', changeOrigin: true, logLevel: 'debug', // デバッグ情報を出力 pathRewrite: {'^/api': ''}, })); const PORT = 3000; app.listen(PORT, () => { console.log(`Proxy server is running on http://localhost:${PORT}`); }); 【フロントのスクリプト】 fetch('http://localhost:3000/api', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer アクセストークン` }, body: JSON.stringify({ query: `{ products(limit: 5, page: 1) { edges { node { id name ProductClasses { price02 } } } } }` }) }) .then(response => { if (!response.ok) { throw new Error('Network response was not ok'); } return response.json(); // ここでレスポンスをJSONとして解析 }) .then(data => { console.log('API call was successful:', data); // ここでAPIからのデータをコンソールに出力 }) .catch(error => { console.error('Error during the API call:', error); }); [問題] プロキシサーバー(Node.js + http-proxy-middlewareを使用)を経由してEC-CUBEにPOSTリクエストを送信すると、「POST http://localhost:3000/api 405 (Method Not Allowed)」のエラーが発生します。 endpointやheaderのContent-Type、Authorizationなどは何度も確認しており間違いはないかと思います。 [質問] 上記で記載しているほぼ全ての単語をここ5日間で初めて聞いてなんとなく理解した程度のリテラシーのため、ここで完全に行き詰ってしまっておりお助けいただきたいです。 このあたりでよくある原因などあれば教えていただけないでしょうか? お手数おかけいたしますが、上記にお詳しい方お答えいただけますと幸いです。 情報の不足などございましたらお教えください。 よろしくお願いいたします。 |
mcontact |
投稿日時: 2024/4/11 14:46
対応状況: −−−
|
神 登録日: 2022/1/22 居住地: 投稿: 1499 |
Re: プロキシサーバーとfetchAPIを使用して、静的LPサイトにECCUBEの商品情報を出力したい 引用:
・アクセストークンの取得(開発環境でfetchAPIのデータ取得の際に認証が必要だったため、EC-CUBEのOAuth管理からクライアントAPIを登録し対応) Postmanにて直接EC-CUBEのAPIでテストを行ったのでしょうか? 引用: プロキシサーバー(Node.js + http-proxy-middlewareを使用)を経由してEC-CUBEにPOSTリクエストを送信すると、「POST http://localhost:3000/api 405 (Method Not Allowed)」のエラーが発生します。 プロキシサーバーを経由した際に、どこでエラーが起きているかは確認されましたか? EC-CUBEのログは確認されましたか? EC-CUBEの管理側「設定>システム設定>権限管理」画面でapiを制限していたりしませんか?
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |