亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

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

linkin / 3485人閱讀

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

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

說(shuō)人話的方式來(lái)解釋一下就是:

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

Restful API有幾個(gè)特性:

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

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

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

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

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

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

甚至路由應(yīng)該這么寫(xiě):

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

但是這個(gè)controller里該怎么寫(xiě)?這對(duì)應(yīng)的是哪個(gè)函數(shù)?反正我看完了是一臉懵逼。其實(shí)這和我本身對(duì)Restful API的了解不深入有關(guān),但是也沒(méi)有文檔和我說(shuō)實(shí)現(xiàn)啊。

其實(shí)egg在Router章節(jié)中說(shuō)到了這一點(diǎn),

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

到這里我才明白R(shí)estful API究竟是什么,應(yīng)該怎么寫(xiě)。

另外需要注意的三個(gè)點(diǎn)

egg會(huì)嘗試對(duì)應(yīng)你Controllers中定義的方法,如果沒(méi)有定義相應(yīng)的方法,會(huì)返回404錯(cuò)誤

路徑中的id可以使用ctx.params.id來(lái)獲得

實(shí)際的路徑書(shū)寫(xiě)如下:

show方法:
GET /posts/1

edit方法:
GET /posts/1/edit

update方法:
PUT /posts/1

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/107664.html

相關(guān)文章

  • Eggjs小試

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

    waltr 評(píng)論0 收藏0
  • eggjs】部署egg時(shí)碰到日志權(quán)限問(wèn)題

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

    waterc 評(píng)論0 收藏0
  • 造輪子 - EGGJSMySQL操作庫(kù)

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

    Alex 評(píng)論0 收藏0
  • egg 自學(xué)入門(mén)demo分享

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

    Olivia 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<