這兩天真的是宅的骨頭都發黴了,春困秋乏夏打盹,也是醉了。今天就簡要說說eggjs下Restful API的實現。主要的緣由是egg的文檔寫的不太清楚,方便新人快速上手。話說eggjs真的是蠻好用的,經過在koa上架了一層,保證了團隊以一套統一的約定開發;另外,egg自己提供不少明確的插件和中間件給你,你只管用就行了,很是的方便和容易上手。可是eggjs的文檔有點小問題,它在有些須要強調的點上沒有強調(它都寫了只是沒有強調而已)。致使咱們一目十行去掃文檔的時候,有時總會以爲有些莫名,Restful api的實現就是其中之一。
用說人話的方式來解釋一下就是:html
Restful API: 爲了讓接口的設計的更簡明易懂,人們定義的一套API命名規範
Restful API有幾個特性:api
具體的內容能夠參考相關文檔,就再也不多說了,立刻進入正題。restful
參考文檔:《如何給老婆解釋什麼是RESTful》(我晚上立刻秀了波如何給爸媽解釋區塊鏈,效果棒棒的),《RESTful API 設計指南》app
若是咱們直接找尋文檔的話,能夠在eggjs文檔下發現RESTful API的文檔,而後看完以後知道了egg已經幫咱們內部實現了一份Restful API的對應關係。koa
甚至路由應該這麼寫:函數
// app/router.js module.exports = app => { app.router.resources('topics', '/api/v2/topics', app.controller.topics); };
可是這個controller裏該怎麼寫?這對應的是哪一個函數?反正我看完了是一臉懵逼。其實這和我自己對Restful API的瞭解不深刻有關,可是也沒有文檔和我說實現啊。post
其實egg在Router章節中說到了這一點,區塊鏈
能夠看到,若是是GET, 路徑只有/posts,那麼對應着posts這個Controllers中的index方法,其餘依次類推。
這樣和《RESTful API 設計指南》中提到的規範寫法是同樣的:spa
到這裏我才明白Restful API到底是什麼,應該怎麼寫。插件
另外須要注意的三個點:
show方法: GET /posts/1 edit方法: GET /posts/1/edit update方法: PUT /posts/1
Egg的文檔VUE的不一樣,須要稍微用心一點,否則可能會像我同樣看一下子。以上。