摘要:今天就簡要說說下的實現。主要的原因是的文檔寫的不太清楚,方便新人快速上手。導致我們一目十行去掃文檔的時候,有時總會覺得有些莫名,的實現就是其中之一。其實這和我本身對的了解不深入有關,但是也沒有文檔和我說實現啊。
這兩天真的是宅的骨頭都發霉了,春困秋乏夏打盹,也是醉了。今天就簡要說說eggjs下Restful API的實現。主要的原因是egg的文檔寫的不太清楚,方便新人快速上手。話說eggjs真的是蠻好用的,通過在koa上架了一層,保證了團隊以一套統一的約定開發;另外,egg本身提供很多明確的插件和中間件給你,你只管用就好了,非常的方便和容易上手。但是eggjs的文檔有點小問題,它在有些需要強調的點上沒有強調(它都寫了只是沒有強調而已)。導致我們一目十行去掃文檔的時候,有時總會覺得有些莫名,Restful api的實現就是其中之一。1. 什么是Restful API
用說人話的方式來解釋一下就是:
Restful API: 為了讓接口的設計的更簡明易懂,人們定義的一套API命名規范
Restful API有幾個特性:
面向資源:接口命名都是zoos、animals,而不是getAllAnimals這樣的
使用Http動詞:GET/PUT/POST/DELETE/PATCH/HEAD/OPTIONS,而不是我們日常只用的GET和POST
具體的內容可以參考相關文檔,就不再多說了,馬上進入正題。
參考文檔:《如何給老婆解釋什么是RESTful》(我晚上馬上秀了波如何給爸媽解釋區塊鏈,效果棒棒的),《RESTful API 設計指南》
2. 如何在egg下實現Restful API如果我們直接找尋文檔的話,可以在eggjs文檔下發現RESTful API的文檔,然后看完之后知道了egg已經幫我們內部實現了一份Restful API的對應關系。
甚至路由應該這么寫:
// app/router.js module.exports = app => { app.router.resources("topics", "/api/v2/topics", app.controller.topics); };
但是這個controller里該怎么寫?這對應的是哪個函數?反正我看完了是一臉懵逼。其實這和我本身對Restful API的了解不深入有關,但是也沒有文檔和我說實現啊。
其實egg在Router章節中說到了這一點,
可以看到,如果是GET, 路徑只有/posts,那么對應著posts這個Controllers中的index方法,其他依次類推。
這樣和《RESTful API 設計指南》中提到的規范寫法是一樣的:
到這里我才明白Restful API究竟是什么,應該怎么寫。
另外需要注意的三個點:
egg會嘗試對應你Controllers中定義的方法,如果沒有定義相應的方法,會返回404錯誤
路徑中的id可以使用ctx.params.id來獲得
實際的路徑書寫如下:
show方法: GET /posts/1 edit方法: GET /posts/1/edit update方法: PUT /posts/1
Egg的文檔VUE的不同,需要稍微用心一點,不然可能會像我一樣看一會兒。以上。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/107664.html
摘要:前兩天將一個部署到服務器時,用就是啟動不了,錯誤信息為無權限創建目錄。查看工作目錄權限,當前用戶是有權限的,看了源碼,原來是用的包的問題。首先,在生產環境下的啟動是通過啟動的。 前兩天將一個egg部署到服務器時,用npm start就是啟動不了,錯誤信息為無權限創建log目錄。查看工作目錄權限,當前用戶是有權限的,看了源碼,原來是用的npm包的問題。這里簡單記錄下解決過程。 首先,在生...
摘要:最近學習,學習過程中使用官方推薦的庫,感覺官方庫不太好用,基礎的沒問題。介紹這個輪子其實是很早以前就造好的,主要參考的數據庫操作方式。將設置表名設置查詢字段聯表等操作進行鏈式操作,給人一種語義化操作數據庫的感覺。 最近學習eggjs,學習過程中使用官方推薦的MySQL庫,感覺官方庫不太好用,基礎的CURD沒問題。但是復雜點的操作就不行了,雖然官方還有一個egg-sequelize,但是...
摘要:編寫在文件夾下添加,文件這里用于獲取數據庫中的數據添加路由確保數據庫能連接成功后,便可以啟動項目。本文只是輔助介紹快速搭建一個基本的項目,具體內容請參考若有疑問或錯誤,請留言,謝謝 2018-08,本文適用于對egg有興趣想要了解的同學完整項目代碼:https://github.com/NameHewei/node-egg 項目主要文件目錄結構 |—— app |—— con...
閱讀 2845·2021-10-21 09:38
閱讀 2751·2021-10-11 10:59
閱讀 3022·2021-09-27 13:36
閱讀 1649·2021-08-23 09:43
閱讀 791·2019-08-29 14:14
閱讀 3034·2019-08-29 12:13
閱讀 3203·2019-08-29 12:13
閱讀 310·2019-08-26 12:24