首頁 後端開發 php教程 web API介面及restful規範詳解

web API介面及restful規範詳解

Nov 28, 2019 pm 02:47 PM
api restful

web API介面及restful規範詳解

什麼是web API介面?

明確了請求方式,提供對應後台所需參數,請求url連結可以得到後台的回應資料

請求方式:get,post,put,patch. ...

請求參數:json或xml格式的key-value類型資料

回應結果:傳回json或xml格式的key-value類型資料

怎麼寫介面?

參考某種規則(規範)書寫url鏈接,同時根據規則制定請求方式,請求資料與回應結果

介面規範:webapi介面規範:restful

RESTful介紹

REST與技術無關,代表的是軟體架構風格,REST是Representational State Transfer的簡稱,中文翻譯為“表徵狀態轉移”或“表現層狀態轉換”。

網域

用api關鍵字來識別介面url

https://api.example.com
https://example.org/api/
登入後複製

註:看到api字眼,就代表該請求url連結是完成前後台資料互動的

版本

1. 將版本資訊放在URL中,如:

https://api.example.com/v1/
https://api.example.com/v2/
登入後複製

v1,v2代表不同資料版本的提現,前提是一種資料資源有多個版本

2. 將版本資訊放在請求頭中。

url路徑

視網路上任何東西都是資源,均使用名詞表示(一般為複數形式)

https://api.example.com/v1/zoos
https://api.example.com/v1/animals
https://api.example.com/v1/employees
登入後複製

在url連結中獎勵不要出現操作資源的動詞

錯誤示範:https://api.baidu.com/delete-user

特殊的介面可以出現動詞,因為這些介面一般沒有一個明確的資源,或動詞就是介面的核心意義

https://api.baidu.com/place/search
https://api.baidu.com/login
登入後複製

method請求方式

GET :從伺服器取出資源(一項或多項)

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

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

PATCH :在伺服器更新資源(客戶端提供改變的屬性)

DELETE :從伺服器刪除資源

過濾

透過在url上傳參的形式傳遞搜尋條件

https://api.example.com/v1/zoos?limit=10:指定返回记录的数量
https://api.example.com/v1/zoos?offset=10:指定返回记录的开始位置
https://api.example.com/v1/zoos?page=2&per_page=100:指定第几页,以及每页的记录数
https://api.example.com/v1/zoos?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序
https://api.example.com/v1/zoos?animal_type_id=1:指定筛选条件
登入後複製

狀態碼

200 OK - [GET]:伺服器成功傳回使用者請求的數據,該操作是冪等的(Idempotent)。

201 CREATED - [POST/PUT/PATCH]:​​使用者新建或修改資料成功。

202 Accepted - [*]:表示一個請求已經進入後台排隊(非同步任務)

204 NO CONTENT - [DELETE]:使用者刪除資料成功。

301:永久重定向

302:暫時重定向

400 INVALID REQUEST - [POST/PUT/PATCH]:​​使用者發出的請求有錯誤,伺服器沒有進行新建或修改資料的操作,該操作是冪等的。

401 Unauthorized - [*]:表示使用者沒有權限(令牌、使用者名稱、密碼錯誤)。

403 Forbidden - [*] 表示使用者獲得授權(與401錯誤相對),但是存取是被禁止的。

404 NOT FOUND - [*]:使用者發出的請求針對的是不存在的記錄,伺服器沒有進行操作,該操作是冪等的。

406 Not Acceptable - [GET]:使用者請求的格式不可用(例如使用者請求JSON格式,但只有XML格式)。

410 Gone -[GET]:使用者請求的資源被永久刪除,且不會再得到的。

422 Unprocesable entity - [POST/PUT/PATCH] 當建立一個物件時,發生一個驗證錯誤。

500 INTERNAL SERVER ERROR - [*]:伺服器發生錯誤,使用者將無法判斷發出的請求是否成功。

錯誤處理

狀態碼是4xx時,應傳回錯誤訊息,error當做key。

{
    error: "Invalid API key"
}
登入後複製

傳回結果

針對不同操作,伺服器向使用者傳回的結果應該符合下列規格

GET     /collection:傳回資源物件的列表(陣列)

GET     /collection/resource:傳回單一資源物件

POST    /collection:傳回新產生的資源物件

PUT     /collection/resource:傳回完整的資源物件

PUT     /collection/resource:傳回完整的資源物件

PATCH   /collection/resource:傳回完整的資源物件

DELETE  /collection/resource:傳回一個空白文檔

{
    "status": 0,
    "msg": "ok",
    "results":[
        {
            "name":"肯德基(罗餐厅)",
            "location":{
                "lat":31.415354,
                "lng":121.357339
            },
            "address":"月罗路2380号",
            "province":"上海市",
            "city":"上海市",
            "area":"宝山区",
            "street_id":"339ed41ae1d6dc320a5cb37c",
            "telephone":"(021)56761006",
            "detail":1,
            "uid":"339ed41ae1d6dc320a5cb37c"
        }
        ...
        ]
}
登入後複製

Hypermedia API

RESTful API最好做到Hypermedia,即返回結果中提供鏈接,連向其他API方法,使得用戶不查文檔,也知道下一步該做什麼。

更多PHP相關知識,請造訪PHP中文網###! ###

以上是web API介面及restful規範詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何在PHP專案中透過呼叫API介面來實現資料的爬取與處理? 如何在PHP專案中透過呼叫API介面來實現資料的爬取與處理? Sep 05, 2023 am 08:41 AM

如何在PHP專案中透過呼叫API介面來實現資料的爬取與處理?一、介紹在PHP專案中,我們經常需要爬取其他網站的數據,並對這些數據進行處理。而許多網站提供了API接口,我們可以透過呼叫這些接口來取得資料。本文將介紹如何使用PHP來呼叫API接口,實現資料的爬取與處理。二、取得API介面的URL和參數在開始之前,我們需要先取得目標API介面的URL以及所需的

如何處理Laravel API報錯問題 如何處理Laravel API報錯問題 Mar 06, 2024 pm 05:18 PM

標題:如何處理LaravelAPI報錯問題,需要具體程式碼範例在進行Laravel開發時,常會遇到API報錯的情況。這些報錯可​​能來自於程式碼邏輯錯誤、資料庫查詢問題或是外部API請求失敗等多種原因。如何處理這些報錯是一個關鍵的問題,本文將透過具體的程式碼範例來示範如何有效處理LaravelAPI報錯問題。 1.錯誤處理在Laravel

Oracle API使用指南:探索資料介面技術 Oracle API使用指南:探索資料介面技術 Mar 07, 2024 am 11:12 AM

Oracle是一家全球知名的資料庫管理系統供應商,其API(ApplicationProgrammingInterface,應用程式介面)是一種強大的工具,可協助開發人員輕鬆地與Oracle資料庫互動和整合。在本文中,我們將深入探討OracleAPI的使用指南,向讀者展示如何在開發過程中利用資料介面技術,同時提供具體的程式碼範例。 1.Oracle

Oracle API整合策略解析:實現系統間無縫通信 Oracle API整合策略解析:實現系統間無縫通信 Mar 07, 2024 pm 10:09 PM

OracleAPI整合策略解析:實現系統間無縫通信,需要具體程式碼範例在當今數位化時代,企業內部系統之間需要相互通信和資料共享,而OracleAPI就是幫助實現系統間無縫通信的重要工具之一。本文將從OracleAPI的基本概念和原則入手,探討API整合的策略,最終給出具體的程式碼範例幫助讀者更好地理解和應用OracleAPI。一、OracleAPI基本

React API呼叫指南:如何與後端API互動和資料傳輸 React API呼叫指南:如何與後端API互動和資料傳輸 Sep 26, 2023 am 10:19 AM

ReactAPI呼叫指南:如何與後端API進行互動和資料傳輸概述:在現代的Web開發中,與後端API進行互動和資料傳輸是一個常見的需求。 React作為一個流行的前端框架,提供了一些強大的工具和功能來簡化這個過程。本文將介紹如何使用React來呼叫後端API,包括基本的GET和POST請求,並提供具體的程式碼範例。安裝所需的依賴:首先,確保在專案中安裝了Axi

使用Python將API資料儲存為CSV格式 使用Python將API資料儲存為CSV格式 Aug 31, 2023 pm 09:09 PM

在資料驅動的應用程式和分析領域,API(應用程式介面)在從各種來源檢索資料方面發揮著至關重要的作用。使用API​​資料時,通常需要以易於存取和操作的格式儲存資料。其中一種格式是CSV(逗號分隔值),它允許有效地組織和儲存表格資料。本文將探討使用強大的程式語言Python將API資料儲存為CSV格式的過程。透過遵循本指南中概述的步驟,我們將學習如何從API中檢索資料、提取相關資訊並將其儲存在CSV檔案中以供進一步分析和處理。讓我們深入了解使用Python進行API資料處理的世界,並釋放CSV格式的潛

開發建議:如何利用ThinkPHP框架進行API開發 開發建議:如何利用ThinkPHP框架進行API開發 Nov 22, 2023 pm 05:18 PM

開發建議:如何利用ThinkPHP框架進行API開發隨著網際網路的不斷發展,API(ApplicationProgrammingInterface)的重要性也日益凸顯。 API是不同應用程式之間進行通訊的橋樑,它可以實現資料共享、功能呼叫等操作,為開發者提供了相對簡單且快速的開發方式。而ThinkPHP框架作為一款優秀的PHP開發框架,具有高效能、可擴展且易用

如何使用MongoDB開發一個簡單的 CRUD API 如何使用MongoDB開發一個簡單的 CRUD API Sep 19, 2023 pm 12:32 PM

如何使用MongoDB開發一個簡單的CRUDAPI在現代的網路應用程式開發中,CRUD(增刪改查)操作是非常常見且重要的功能之一。在本文中,我們將介紹如何使用MongoDB資料庫開發一個簡單的CRUDAPI,並提供具體的程式碼範例。 MongoDB是一個開源的NoSQL資料庫,它以文件的形式儲存資料。與傳統的關聯式資料庫不同,MongoDB沒有預先定義的模式

See all articles