Eggjs下Restful API的實現

2021-09-14 00:02:18 字數 1440 閱讀 8950

這兩天真的是宅的骨頭都發霉了,春睏秋乏夏打盹,也是醉了。今天就簡要說說eggjs下restful api的實現。主要的原因是egg的文件寫的不太清楚,方便新人快速上手。話說eggjs真的是蠻好用的,通過在koa上架了一層,保證了團隊以一套統一的約定開發;另外,egg本身提供很多明確的外掛程式和中介軟體給你,你只管用就好了,非常的方便和容易上手。但是eggjs的文件有點小問題,它在有些需要強調的點上沒有強調(它都寫了只是沒有強調而已)。導致我們一目十行去掃文件的時候,有時總會覺得有些莫名,restful api的實現就是其中之一。
說人話的方式來解釋一下就是:

restful api: 為了讓介面的設計的更簡明易懂,人們定義的一套api命名規範
restful api有幾個特性:

具體的內容可以參考相關文件,就不再多說了,馬上進入正題

參考文件:《如何給老婆解釋什麼是restful》(我晚上馬上秀了波如何給爸媽解釋區塊鏈,效果棒棒的),《restful api 設計指南》

如果我們直接找尋文件的話,可以在eggjs文件下發現restful api的文件,然後看完之後知道了egg已經幫我們內部實現了乙份restful api的對應關係。

甚至路由應該這麼寫:};

但是這個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的不同,需要稍微用心一點,不然可能會像我一樣看一會兒。以上。

通過express實現restfulapi

router通過api傳資料給ejs渲染模板 ejs實現靜態和動態的頁面渲染 前端請求方式 getpost putdelete head all以上的請求方式統稱為 restful api 通過restful api 來設計後端介面 測試介面是否正常,我們可以使用測試工具 postman insom...

django基礎學習之restful api

新建django專案,選擇已存在的django檔案,在新視窗中開啟,設定埠。編寫的api需要認證,使用postman進行除錯。處理queryset資料型別 先進入終端目錄除錯 執行 python manage.py shell命令,實驗資料提取形式 from face.models import r...

eggjs實現路由免註冊

phper 習慣了thinkphp的寫法,每次註冊eggjs的路由覺得有些麻煩,趁著媳婦不在家,騰出來時間研究下記錄一下 use strict 全域性變數定義 方法object物件 global.actionobject 實現方法object.keys controller item 0 時,為控制...