我希望使用ES6,react,react-redux以及你的js-buy-sdk api构建一个电子商务Web应用程序。我的问题是,从shopify获取所有产品并将它们放入商店后,我似乎没有像我期望的那样拥有关于产品的所有数据,而只是:{ attrs, shopClient, serializer, type, config, _memoized }
。
以下是我在命名为shopify.js
的文件下拨打获取产品的方式:
import ShopifyBuy from 'shopify-buy';
const shopClient = ShopifyBuy.buildClient({
apiKey: 'xxxxxxxxxxxxxxxxxxxx1403c107adc7e',
domain: 'xxxxxxxxxxxxxxxx.myshopify.com',
appId: '6',
});
export function fetchAllProducts() {
return new Promise((resolve, reject) => {
shopClient.fetchAllProducts()
.then((data) => {
console.log('shopClient.fetchAllProducts', data);
resolve(data);
}).catch((error) => {
console.error(new Error('Fetching products error!'));
reject(error);
});
});
}
查看console.log shopClient.fetchAllProducts
这是我得到的:
我拿data
并将它放在redux商店中,当我看到它时,它看起来像这样:
如果相关,请检查this gist以查看我发送的操作以及this gist我的操作将减少并放入商店的位置。
根据我的理解,当你执行fetchAllProducts()
方法时,会得到一个ProductModel
的数组,因此,我想在我的商店中设置了以下{ attrs, shopClient, serializer, type, config, _memoized }
,因为这就是{ {1}}在内部存储。
我的问题是,有没有办法从ProductModel
获取数据的原始对象(包含第一个屏幕截图中显示的所有相关产品值以及来自ProductModel
所依赖的模型,例如ProductOptionModel
,所以为了稳定性和理智原因,我可以放置我的商店吗?
可以找到Shopify API参考here。
答案 0 :(得分:2)
如果您正在寻找对产品上返回的数据的原始访问权限,attrs
属性包含API响应JSON,而无需其他逻辑或模型。
但是,如果可能的话,我建议您以可以利用这些模型的方式组织代码 - 我们添加了这些代码,因为原始数据可能格式混乱(特别是变体,选项,图像) 。
也就是说,如果您想要返回所有产品的原始数据,那么这样的事情应该可以解决问题。
import ShopifyBuy from 'shopify-buy';
const shopClient = ShopifyBuy.buildClient({
apiKey: 'xxxxxxxxxxxxxxxxxxxx1403c107adc7e',
domain: 'xxxxxxxxxxxxxxxx.myshopify.com',
appId: '6',
});
export function fetchAllProducts() {
return new Promise((resolve, reject) => {
shopClient.fetchAllProducts()
.then((products) => {
resolve(products.map((product) => {
return product.attrs;
}));
}).catch((error) => {
console.error(new Error('Fetching products error!'));
reject(error);
});
});
}
答案 1 :(得分:0)
在您的示例代码中,您使用秘密API密钥调用API?您是否明白这会使您的商店暴露于您可能不想要的滥用权利?你确定你知道你在那里做什么吗?