每日一博丨为什么前后端分离了,你比从前更痛苦?

}, } (controller): user#getBook
responses:
200:
body:
type: song[]


example: !include ./books_200.json

在文档中 (controller) 表示 controller 目录下 user.js 中 getBook 函数。

controller/user.js

exports.getBook = (req, res, webApi) => {
console.log(webApi);
res.send('Hello World!');
}

Raml-mocker 是在 expressjs 基础上进行开发,req、res 可以参考 express 文档。

webApi 会返回文档中的配置:

{

"absoluteUri": "/api/:version/users/:user_id/books",

"method": "get",

"controller": "user#getBook",

"responses": [

{

"code": "200",

"body": "... example ...",

"mimeType": "application/json"

}

]

}

如此,raml-mocker 提供了更多可扩展空间,我们甚至可以在 controller 中实现一定的逻辑。

插件

Raml-mocker 提供了插件机制,允许我们在不使用 controller 指令的时候对 response 的内容进行处理,例如使用 Mockjs。

.raml-config.json

{

"controller": "./controller",

"raml": "./raml",

"main": "api.raml",

"port": 3000,

"plugins": ["./plugins/mock.js"]

}

./plugins/mock.js

var { mock } = require('mockjs');
module.exports = (body) => {
try {
return mock(JSON.parse(body));
} catch(e) {}
return body;
}

Enjoy it!

总结

前后端分离可以让我们的职责更清晰,打破前端发挥的局限,工作解耦之后能更好的提高开发效率。然而因为没有规划好开发流程,导致了我们没有发挥出其应有的价值,造成了更多的浪费。

raml-mocker 能够帮助我们在工具上解决一定的问题,更重要的是持续改进的思想,只有团队的思想是统一的才有可能达到快速交付。

希望能对你有所帮助,谢谢!

每日一博栏目,每日为你推荐优秀博主的优质技术文章。同时欢迎用户投稿,文章一旦被官方账号收录,我们会在网站首页等位置进行推荐哦。关注开源中国OSC每日获取优质推送,点击“了解更多”阅读原文章。


分享到:


相關文章: