如何使用新的 ember-cli http-mock 进行 API 调用

2024-03-02

我有一个简单的(到目前为止)ember-cli 项目,现在只有一个带有 FIXTURE 数据的模型。我想用实际的 JSON 文件或用http-mock,这是 ember-cli 版本 41 以前的名称api-stub.

我对这一切都很陌生,所以我真的不知道如何利用我在人们能够获得的信息中找到的信息api-stub工作,而且看起来不像任何文档ember-cli http://ember-cli.com已更新为http-mock信息尚未。

我确实做了ember generate http-mock project但我不确定从这里开始该怎么做。

这是我当前的 app/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');
  });
});

因此,我有一个适用于所有项目的模板,并且想要深入到一个需要能够与嵌套路由相关的模板。 我的理想是这样的GitHub API https://api.github.com/users/octocat您可以在其中从用户深入到存储库、该存储库上的问题等。

再说一遍,我仍在学习 ember 和 ember-cli,因此非常感谢对“为什么”和“如何”的解释。


我对 ember/ember-cli 也很陌生,但我有一个简单的 http-mock 原型可以工作。生成 http-mock 项目后:

>ember g http-mock project

生成器应该在您的项目中创建一个“server”文件夹,并在“mocks”子目录中创建您的project.js 模拟。如果你打开该文件(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);
};

您需要使用 api 应响应的 json 来更新 res.send(...) 。例如:

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'}}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用新的 ember-cli http-mock 进行 API 调用 的相关文章

随机推荐