2013-07-12 5 views
0

Я работаю с клиентом для разработки двух сайтов: сайта с общей информацией об их бизнесе и отдельного магазина электронной коммерции для продажи предлагаемых ими продуктов. Насколько мне известно, это довольно распространенный подход, поскольку часто клиентские требования CMS выходят за рамки того, что предлагают большинство платформ электронной торговли.Узнать API из внешнего приложения? (backbone.js)

Главный сайт должен будет показать некоторые из продуктов в магазине, поэтому я ищу платформы для электронной коммерции, у которых есть API. Shopify поймал мой взгляд, поскольку у него есть API, которые возвращают JSON. Я собираюсь создать основной сайт с Backbone.js с бэкэндом Sinatra.

Может ли кто-нибудь сказать мне, можно ли использовать метод Shopify API таким образом? Я также вижу несколько надуманное и неподдающееся изучению приложение Shopify под названием Shopify Widget, которое, как я думаю, не будет служить целям моего клиента. Как бы вы справились с этой ситуацией?

ответ

1

Вам нужно будет использовать приложение sinatra в качестве прокси-сервера для магазина Shopify, поскольку междоменные вызовы через Javascript не будут работать.

Вы можете использовать драгоценный камень ShopifyAPI, чтобы выполнить большую часть своего тяжелого подъема, и если вы действительно хотите, чтобы вы могли написать гетто RestAPI в Синатре, чтобы вы не изобретали колесо Shopify.

Это может быть что-то простое, как:

POST /shopify.json 
{ 
    "model": "ShopifyAPI::Product", 
    "data": { ..shop data... } 
} 

И вы, вероятно, можно использовать const_get, чтобы получить реальную модель вам нужно будет.

+0

Спасибо @csaunders, очень полезно. –

1

Если вы используете Sinatra в качестве бэкэнд, вы действительно можете совершать междоменные звонки Ajax. Я делаю это все время. Просто используйте Rack-Cors gem, если вы хотите использовать CORS. Если вы пренебрежительно относитесь к этому из-за того, что IE имеет проблемы с CORS, вы всегда можете вернуть JSONP в качестве замены. Если ваш бэкэнд Sinatra работает на субдомене, вы можете делать все, поскольку нет проблемы междоменного доступа.

Смежные вопросы