我在物联网框架中使用秘银。我试图将前端开发与后端 API 实现任务隔离开来。在 jQuery 中,我使用了 jQuery-mockjax 和 Angular 中的类似机制。我的理解是,这些库拦截 ajax 函数调用并适当地响应使用 $.mockjax (或类似函数)设置的数据
此处推荐的机制https://groups.google.com/forum/#!topic/mithriljs/FzpCPMfauf0没有提供实现此功能的灵活性。对于选定的少数 API,没有简单的方法可以使用 mock。
查看代码后,我意识到,要实现这一点,我需要访问“ajax”函数(或只是 XHR 处理部分),以便可以使用我自己的可以模拟所选 API 的实现来覆盖它。问题是 ajax 是库中的本地函数。如果它作为 m.ajax 公开,我的库可以覆盖它并获得我需要的功能。
我的问题是,有没有更好的方法来实现同样的目标?如果你做过类似的事情,请分享。
我的代码结构将是这样的:
// in mithril-mockjax.js, implements mockjax function
m.mockjax = function (options) { … }
// in app-api-mocks.js
m.mockjax({
method: GET,
url: /sessions/123,
response: { …}
});
m.mockjax({
method: POST,
url: /sessions,
data: {},
response: { … }
});
上面两个文件是我在开发模式时在页面中插入的。其余代码保持不变。