php Restful設計

      網友投稿 794 2025-04-04

      1、RESTful是基于資源的,面向資源架構風格(一個鏈接,一張圖、一個文本等等)


      2、RESTful的http協議

      2.1 url:

      2.1.1 port 服務端口,默認為80

      2.1.2 path 訪問資源的路徑

      2.1.3 query-string 發送給http服務器的數據

      2.1.4 anchor 錨

      2.2 請求 組成格式:請求行、消息報頭、請求正文

      請求行格式: Method Request-URI HTTP-Version CRLF

      例子: GET / HTTP/1.1 CRLF

      2.3請求方法

      GET :請求獲取Request-URI的所表示的資源

      POST :在Request-URI所標識的資源后附加新的數據

      HEAD :請求獲取由Request-URI所標識的資源的相應消息包頭

      PUT : 請求服務器存儲一個資源,并用Request-URI作為其標識

      DELETE :請求服務器刪除Request-URI所表示的資源

      OPTIONS:請求查詢服務器的性能,或者查詢與資源相關的選項請求

      2.4 響應 組成格式:狀態行、消息報頭、響應正文

      狀態行格式 : HTTP-Version Status-Code Reason-PhRase CRLF

      例子:HTTP/1.1 200 OK

      2.5 常用狀態碼

      200 ok //客戶端請求成功

      400 Bad Request //客戶端請求有語法錯誤,不能被服務器所理解

      401 Unauthorized //服務器收到請求,但是拒絕提供服務,需要授權訪問

      404 Not Found //請求資源不存在

      500 Internal Server Error //服務器發生不可預期的錯誤

      503 Server Unavailable //服務器當前不能處理客戶端請求,一般服務器達到性能瓶頸拒絕服務

      3、如何設計RESTful API

      3.1 資源路徑(URI)

      概念:在RESTful架構中,每個網址代表一種資源,所以網址中不能有動詞,只能用名詞。一般來說API中的名詞應該使用復數

      舉例:有一個API提供動物園(zoo)的信息,還包括各種動物和雇員的信息,則它的路徑應該設計成下面這樣

      https://api.example.com/v1/zoos //動物園資源

      https://api.example.com/v1/animals/2 //動物園資源

      3.2 HTTP動詞

      概念:對于資源的操作(CURD),由HTTP動詞表示

      GET:從服務器獲取資源(一項或多項)

      POST:在服務器新建一個資源

      PUT:在服務器更新資源(客戶端提供改變后的完整資源)

      PATCH:在服務器更新資源(客戶端提供改變的屬性)【注意】:這個不常用,更新一般都用PUT,用PUT更新會返回所有字段,而用PATCH更新只會返回更新的字段

      DELETE:從服務器刪除一個數據

      舉例:

      POST /zoos:新建一個動物園

      GET /zoos/ID:獲取某個指定動物園的信息

      PUT /zoos/ID:更新某個指定動物園的信息

      DELETE /zoos/ID:刪除某個動物園

      3.3 過濾信息

      概念:如果記錄數量很多,服務器不可能都將它們返回給用戶。API應該提供參數,過濾返回結果

      舉例:

      ?offset=10:制定返回記錄的開始位置

      ?page=2&per_page=100:制定第幾頁,以及每頁的記錄數

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

      ?animal_type_id=1:制定篩選條件

      3.4 狀態碼

      php Restful設計

      200 ok 服務器成功返回用戶請求的數據,該操作是冪等的

      201 CREATED 新建或修改數據成功

      204 NO CONTNET 刪除數據成功

      400 BAD REQUEST 用戶發出的請求有錯誤,該操作是冪等

      401 Unauthorized 表示擁護沒有認證,無法進行當前操作

      403 Forbidden 表示擁護訪問時被禁止的

      422 Unprocesable Entity 當創建一個對象時,發生一個驗證錯誤

      500 INTERNAL SERVER ERROR 服務器發生錯誤,用戶將無法判斷發出的請求是否成功

      3.5 錯誤處理

      概念:如果狀態碼是4xx或者5xx,就應該像用戶返回錯誤信息。一般來說,返回的信息中將error作為鍵名,出錯信息作為鍵值即可

      {

      'error' : '參數錯誤'

      }

      3.6 返回結果

      針對不同操作,服務器向用戶返回的結果應該符合以下規范:

      GET /collections:返回資源對象的列表(數組)

      GET /collections/identity:返回單個資源對象

      POST /collections:返回新生成的資源對象

      PUT /collections/identity:返回完整的資源對象

      PATCH /collections/identity :返回被修改的屬性

      DELETE /collections/identity : 返回一個空文檔

      4、google商店搜索restful api client找到 Restlet Client-REST API Testing,安裝調試restful工具

      5、項目實例

      項目需求:用戶登陸、注冊

      文章發表、編輯、管理、列表

      分析資源:用戶(user) 、文章(article)

      資源路徑:/user 、 /article

      HTTP動詞:POST、GET、PUT、DELETE

      過濾信息:文章分頁篩選

      狀態碼:200、404、422、403

      錯誤處理:輸出json格式錯誤信息

      返回結果:輸出json數組或者json對象

      https://blog.csdn.net/jj546630576/article/details/77948445

      HTTP PHP

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel如何讓橫豎調換
      下一篇:怎樣設置wps表格權限密碼
      相關文章
      在线观看亚洲网站| 中文字幕在线观看亚洲视频| 亚洲不卡1卡2卡三卡2021麻豆| 亚洲AV无一区二区三区久久| 国产亚洲老熟女视频| 大胆亚洲人体视频| 亚洲A∨精品一区二区三区| 亚洲AV无码一区二三区| 色窝窝亚洲AV网在线观看| 自拍偷自拍亚洲精品播放| 综合一区自拍亚洲综合图区| 无码国产亚洲日韩国精品视频一区二区三区| 亚洲男人的天堂网站| 亚洲另类自拍丝袜第五页| 亚洲乱色熟女一区二区三区蜜臀| 亚洲人成图片网站| 亚洲中文字幕无码亚洲成A人片 | 亚洲欧洲无码AV电影在线观看| 久久亚洲最大成人网4438| 亚洲H在线播放在线观看H| 亚洲最大中文字幕| 亚洲日韩中文字幕| 亚洲韩国在线一卡二卡| 久久久亚洲欧洲日产国码二区| 国产亚洲美女精品久久久| 亚洲国产精品专区在线观看| 亚洲国产成人AV网站| 午夜亚洲国产成人不卡在线| 国产亚洲综合久久| 亚洲成av人在片观看| 亚洲精品无码永久在线观看| 亚洲欧美日韩中文二区| 亚洲欧洲日产国码久在线| 亚洲国产aⅴ成人精品无吗| 亚洲国产成人久久综合| 国产亚洲精品欧洲在线观看| 亚洲VA综合VA国产产VA中| 亚洲人成国产精品无码| 久久久久亚洲AV成人网人人网站| 亚洲综合区小说区激情区| 亚洲人成人无码网www国产|