Хочу подробно узнать, как правильно работать с этой связкой.
1. Как выводить данные в Ember из DRF? Какие шаги нужно выполнить?
Прописал роутрер:
import Ember from 'ember';
import config from './config/environment';
var Router = Ember.Router.extend({
location: config.locationType
});
Router.map(function() {
this.route('products', { path: 'products' });
this.route('product', {path: 'product/:product_id'});
});
export default Router;
... и сам роут:
import Ember from 'ember';
export default Ember.Route.extend({
model: function () {
return this.store.find('product');
}
});
... описал модель:
import DS from 'ember-data';
export default DS.Model.extend({
scu: DS.attr(),
full_title: DS.attr(),
price: DS.attr()
});
... создал адаптер:
import DS from 'ember-data';
export default DS.RESTAdapter.extend({
host: 'http://127.0.0.1:8000',
namespace: 'api'
});
Ничего не работает. Объясните как вывести данные из примера ниже? Для чего нужны serializers?
2. В каком формате нужно отдавать JSON? Например
api/products
отдает JSON вида:
[
{
"id": 1,
"scu": "191625",
"title": "hp ProBook 450 G2",
"price": "53598.00",
"url": "http://127.0.0.1:8000/api/products/1/",
"category": "Ноутбуки",
"images": [
{
"id": 1,
"image": "http://127.0.0.1:8000/media/catalog/product/images/191625/01.jpg"
}
]
},
...
]
Однако, это не соответсвует
JSON API, я пока не знаю насколько это важно, но в документации эмбер говорится, что нужно соответствовать.
Как реализовать это в DRF?
3. С Ember работаю с помощью Ember CLI. Ember хостится на localhost: 4200, джанго на localhost:8000. При обращении к API Ember выдавал ошибку XMLHttpRequest cannot load. Решил это с помощью
Django Cors Header прописав в
settings.py
CORS_ORIGIN_ALLOW_ALL = True
. Как я понимаю в деплое такой проблемы не будет? И какие проблемы с безопасностью это влечет?
4. Как избежать обработки URL Джангой?
Порекомендуйте, что почитать по этой теме. Если нет какого-то сводного руководства, можно будет на основе этого поста написать небольшой туториал.