Подтвердить что ты не робот

Как использовать новый 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, поэтому объяснения "почему", а также "как" чрезвычайно ценятся.

4b9b3361

Ответ 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'}}