バージョン選択

フォーラム

メニュー

オンライン状況

49 人のユーザが現在オンラインです。 (43 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 48
red もっと...

サイト内検索

質問 > その他 > プロキシサーバーと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を登録し対応)
・CORS回避のためプロキシサーバーを設定。
・その後Postmanでデータの取得は確認済み。


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を制限していたりしませんか?





----------------
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
EC-CUBEインテグレートパートナー【ゴールド】ランク
M&I Works
URL: https://miworks.biz/
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は94,574名です
総投稿数は111,307件です

投稿数ランキング

1
seasoft
7369
2
468
3217
3
AMUAMU
2712
4
nanasess
2324
5
umebius
2085
6
yuh
1877
7
h_tanaka
1790
8
red
1574
9
mcontact
1499
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
804
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.