每日一博丨爲什麼前後端分離了,你比從前更痛苦?

}, } (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每日獲取優質推送,點擊“瞭解更多”閱讀原文章。


分享到:


相關文章: