RESTful 你了解RESTful設計要素嗎

2022-09-09 08:30:16 字數 899 閱讀 1760

在restful架構中,每個**代表一種資源,所以**中不能有動詞,只能有名詞。一般來說api中的名詞應該使用複數。

例如:有乙個api提供動物園(zoo)的資訊,還包括各種動物和雇員的資訊,它的路徑應該設計成:  

//動物園資源

//動物資源

//雇員資源

https:協議頭。v1:關於api的版本號(還可以加到http請求頭中)。zoos:動物園資源(複數)。

動物園只有乙個,所以沒有指明動物園的id。 

對於資源的操作(curd),由http動詞(謂詞)表示。

put更新資源後,伺服器端會返回整個資源。而patch更新完之後只會返回跟新的屬性。

舉例:

post/zoos    //新建乙個動物園

get/zoos/id  //獲取某個指定動物園的資訊

put/zoos/id  //更新某個指定動物園的資訊

delete/zoos/id  //刪除某個動物園

如果記錄數量很多,伺服器不可能都將他們返回給使用者。

api應該提供引數,過濾返回結果。

舉例:

?offset=10    //指定返回記錄的開始位置

?page-2&per_page=100  //指定第幾頁,以及每頁的記錄數

?sortby=name&order=asc  //指定返回結果排序,以及排序順序

?animal_type_id=1  //指定篩選條件

伺服器向使用者返回的狀態碼和提示資訊,使用標準http狀態碼。

如果狀態碼是4xx或者5xx,就應該向使用者返回出錯資訊。一般來說,返回的資訊中將error作為鍵名,出錯資訊作為鍵值。例如:

針對不同操作,伺服器向使用者返回的結果應該符合以下規範:

一起了解RESTful架構

restful架構,就是目前最流行的一種網際網路軟體架構。它結構清晰 符合標準 易於理解 擴充套件方便,所以正得到越來越多 的採用。首先我們從字面入手,顯然這是乙個縮寫,全稱是 representationstatetransfer 直譯過來就是 表現層狀態轉化 下面我們了解一下每個單詞背後的含義,...

你了解WINX多少?

struct mywindow public winx window mywindow struct mydialog public winx modaldialog mydialog,idd struct myedit public winx edit myedit 請問,sizeof mywin...

python hashlib你了解多少?

hashlib 可以將乙個字串資料型別的變數轉化成乙個定長的密文的字串,字串裡的每乙個字元都是16進製制數字。演算法 對同乙個字串,用相同的演算法,相同的手段去進行摘要,獲取的值總是相同的。對於同乙個字串,不管什麼環境 什麼語言 多少次執行,使用相同的演算法得到的結果永遠是相同的。只要不是相同的字串...