成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Eggjs下Restful API的實現(xiàn)

linkin / 3435人閱讀

摘要:今天就簡要說說下的實現(xiàn)。主要的原因是的文檔寫的不太清楚,方便新人快速上手。導致我們一目十行去掃文檔的時候,有時總會覺得有些莫名,的實現(xiàn)就是其中之一。其實這和我本身對的了解不深入有關,但是也沒有文檔和我說實現(xiàn)啊。

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

說人話的方式來解釋一下就是:

Restful API: 為了讓接口的設計的更簡明易懂,人們定義的一套API命名規(guī)范

Restful API有幾個特性:

面向資源:接口命名都是zoos、animals,而不是getAllAnimals這樣的

使用Http動詞:GET/PUT/POST/DELETE/PATCH/HEAD/OPTIONS,而不是我們?nèi)粘V挥玫腉ET和POST

具體的內(nèi)容可以參考相關文檔,就不再多說了,馬上進入正題。

參考文檔:《如何給老婆解釋什么是RESTful》(我晚上馬上秀了波如何給爸媽解釋區(qū)塊鏈,效果棒棒的),《RESTful API 設計指南》

2. 如何在egg下實現(xiàn)Restful API

如果我們直接找尋文檔的話,可以在eggjs文檔下發(fā)現(xiàn)RESTful API的文檔,然后看完之后知道了egg已經(jīng)幫我們內(nèi)部實現(xiàn)了一份Restful API的對應關系。

甚至路由應該這么寫:

// app/router.js
module.exports = app => {
  app.router.resources("topics", "/api/v2/topics", app.controller.topics);
};

但是這個controller里該怎么寫?這對應的是哪個函數(shù)?反正我看完了是一臉懵逼。其實這和我本身對Restful API的了解不深入有關,但是也沒有文檔和我說實現(xiàn)啊。

其實egg在Router章節(jié)中說到了這一點,

可以看到,如果是GET, 路徑只有/posts,那么對應著posts這個Controllers中的index方法,其他依次類推。
這樣和《RESTful API 設計指南》中提到的規(guī)范寫法是一樣的:

到這里我才明白Restful API究竟是什么,應該怎么寫。

另外需要注意的三個點

egg會嘗試對應你Controllers中定義的方法,如果沒有定義相應的方法,會返回404錯誤

路徑中的id可以使用ctx.params.id來獲得

實際的路徑書寫如下:

show方法:
GET /posts/1

edit方法:
GET /posts/1/edit

update方法:
PUT /posts/1

Egg的文檔VUE的不同,需要稍微用心一點,不然可能會像我一樣看一會兒。以上。

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/107664.html

相關文章

  • Eggjs小試

    摘要:項目都很小,但為了進一步了解,特意選擇了作為框架基礎開發(fā)后端服務。能將請求限制在同源網(wǎng)站,即只有擁有專有令牌的網(wǎng)站發(fā)送請求才會正確響應。項目生產(chǎn)靜默部署,啟動使用,停止使用。不足工具函數(shù)的訪問需要自己手動添加擴展另沒有寫測試,希望下次補上。 前言 這段時間,用Eggjs作為后端服務框架開發(fā)了幾個項目。項目都很小,但為了進一步了解Eggjs,特意選擇了Eggjs作為框架基礎開發(fā)后端服務。...

    waltr 評論0 收藏0
  • eggjs】部署egg時碰到日志權限問題

    摘要:前兩天將一個部署到服務器時,用就是啟動不了,錯誤信息為無權限創(chuàng)建目錄。查看工作目錄權限,當前用戶是有權限的,看了源碼,原來是用的包的問題。首先,在生產(chǎn)環(huán)境下的啟動是通過啟動的。 前兩天將一個egg部署到服務器時,用npm start就是啟動不了,錯誤信息為無權限創(chuàng)建log目錄。查看工作目錄權限,當前用戶是有權限的,看了源碼,原來是用的npm包的問題。這里簡單記錄下解決過程。 首先,在生...

    waterc 評論0 收藏0
  • 造輪子 - EGGJSMySQL操作庫

    摘要:最近學習,學習過程中使用官方推薦的庫,感覺官方庫不太好用,基礎的沒問題。介紹這個輪子其實是很早以前就造好的,主要參考的數(shù)據(jù)庫操作方式。將設置表名設置查詢字段聯(lián)表等操作進行鏈式操作,給人一種語義化操作數(shù)據(jù)庫的感覺。 最近學習eggjs,學習過程中使用官方推薦的MySQL庫,感覺官方庫不太好用,基礎的CURD沒問題。但是復雜點的操作就不行了,雖然官方還有一個egg-sequelize,但是...

    Alex 評論0 收藏0
  • egg 自學入門demo分享

    摘要:編寫在文件夾下添加,文件這里用于獲取數(shù)據(jù)庫中的數(shù)據(jù)添加路由確保數(shù)據(jù)庫能連接成功后,便可以啟動項目。本文只是輔助介紹快速搭建一個基本的項目,具體內(nèi)容請參考若有疑問或錯誤,請留言,謝謝 2018-08,本文適用于對egg有興趣想要了解的同學完整項目代碼:https://github.com/NameHewei/node-egg 項目主要文件目錄結構 |—— app |—— con...

    Olivia 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<