Как использовать новый http-mock для ember-cli для вызовов API
У меня есть простой (пока) проект ember-cli, и сейчас у меня есть только одна модель с данными FIXTURE. Я хотел бы высмеять материал API, либо с фактическими файлами JSON, либо с помощью http-mock
, который является именем ember-cli версии 41 того, что раньше было api-stub
.
Я новичок во всем этом, поэтому я действительно не знал, что делать с информацией, которую я нашел там, где люди смогли получить api-stub
, и это не похоже на какие-либо документы в ember-cli были обновлены с помощью http-mock
info.
Я сделал ember generate http-mock project
, но я не уверен, что делать дальше.
Здесь мое текущее приложение /router.js:
Router.map(function() {
this.resource('projects', { path: '/' });
this.resource('project', {path: '/project/:project_id'}, function(){
this.resource('milestones');
this.resource('team');
this.resource('budget');
});
});
Итак, у меня есть шаблон для всех моих проектов и хочу переходить к одному, что должно быть связано с вложенными маршрутами.
Мой идеал был бы чем-то вроде API GitHub, где вы можете переходить от пользователя к репо, к проблемам в этом репо и т.д.
Опять же, я все еще изучаю свой путь вокруг ember и ember-cli, поэтому объяснения "почему", а также "как" чрезвычайно ценятся.
Ответы
Ответ 1
Я новичок в ember/ember-cli, но у меня есть простой прототип http-mock. После создания вашего проекта http-mock:
>ember g http-mock project
Генератор должен был создать "серверную" папку в вашем проекте с вашим проектом project.js в подкаталоге "mocks". Если вы откроете этот файл (server/mocks/project.js), вы увидите что-то вроде этого:
module.exports = function(app) {
var express = require('express');
var projectRouter = express.Router();
projectRouter.get('/', function(req, res) {
res.send({project:[]});
});
app.use('/api/project', projectRouter);
};
Вы хотите обновить res.send(...) с помощью json, на который должен ответить api. например:
res.send({project:{id: 1, number: 123, name: 'Fooshnickins'}});
Вы можете убедиться, что это работает, запустив ваш сервер:
>ember server
И скручивание вашего api (обратите внимание на тип содержимого):
>curl -H "ContentType:application/json" http://localhost:4200/api/project
Должен ответить:
{project:{id: 1, number: 123, name: 'Fooshnickins'}}