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