【问题标题】:Shopify API from external app? (backbone.js)来自外部应用程序的 Shopify API? (骨干网.js)
【发布时间】:2013-07-11 05:28:53
【问题描述】:
我正在与一位客户合作开发两个网站:一个提供有关其业务的一般信息的网站,以及一个单独的电子商务商店,用于销售他们提供的产品。据我所知,这是一种相当常见的方法,因为客户的 CMS 需求通常超出了大多数电子商务平台提供的范围。
主站点需要展示商店中的一些产品,所以我正在寻找具有 API 的电子商务平台。 Shopify 引起了我的注意,因为它具有返回 JSON 的 API。我将使用带有 Sinatra 后端的 Backbone.js 构建主站点。
谁能告诉我 Shopify API 是否可以这样使用?我还看到了一个名为 Shopify Widget 的有点脆弱且无法定制的 Shopify 应用程序,我认为它不能满足我客户的目的。您将如何处理这种情况?
【问题讨论】:
标签:
api
backbone.js
e-commerce
shopify
【解决方案1】:
您必须使用 sinatra 应用作为 Shopify 商店的代理,因为无法通过 Javascript 进行跨域调用。
您可以使用 ShopifyAPI gem 来完成大部分繁重的工作,如果您真的需要,您可以在 Sinatra 中编写一个 ghetto RestAPI,这样您就不会重新发明 Shopify 轮子。
这可能很简单,例如:
POST /shopify.json
{
"model": "ShopifyAPI::Product",
"data": { ..shop data... }
}
您或许可以使用const_get 来检索您需要的实际模型。
【解决方案2】:
如果您使用 Sinatra 作为后端,您确实可以进行跨域 Ajax 调用。我一直都这样做。如果您想使用 CORS,只需使用 Rack-Cors gem。如果您因为 IE 在执行 CORS 时遇到问题而对此感到不安,您可以随时返回 JSONP 作为替代。如果您的 Sinatra 后端在子域上运行,您可以做任何事情,因为不存在跨域问题。