restful介面規範與postman調試工具介紹
最近學習了RESTful介面規範,並用Postman作了介紹,在這裡記錄一下有關RESTful介面規範:
##1.什麼是RESTful?
REST:是web服務的一種架構風格;使用HTTP,URI,XML,JSON,HTML等廣泛流行的標準和協定;輕量級,跨平台,跨語言的架構設計;它是一種設計風格,不是一種標準,是一種思想。 RESTful:對應的中文是rest式的;Restful web service是一種常見的rest的應用,是遵守了rest風格的web服務;rest式的web服務是一種ROA(The Resource- Oriented Architecture)(資源導向的架構)【建議:web前端】
RESTful的本質是一種軟體架構風格,核心是面向資源,解決的問題:- 降低開發的複雜性
- 提高系統的可擴展性
#2.SOAP和REST的差異: SOAP ( Simple Object Access Protocol):交換資料一種協定規範,是一種輕量的、簡單的、基於XML的協定。
REST (Representational State Transfer):一種軟體架構風格,可以降低開發的複雜性,提高系統的可擴展性。
效率與易用性:
SOAP:由於各種需求不斷擴充其本身協定的內容,導致在SOAP處理方面的效能有所下降。同時在易用性方面以及學習成本上也有所增加。
RESTful:由於其面向資源介面設計以及操作抽象簡化了開發者的不良設計,同時也最大限度的利用了Http最初的應用協定設計理念。
安全性:
RESTful對於資源型服務介面來說很合適,同時特別適合對於效率要求很高,但是對於安全要求不高的場景。
SOAP的成熟性可以為需要提供給多開發語言的,對於安全性要求較高的介面設計帶來便利。 總之:
安全性: SOAP會好於REST;
效率與易用性: REST更勝一籌;
成熟度:總的來說SOAP在成熟度上優於REST。
3.如何設計RESTful API:
資源路徑:在RESTful架構中,每個網址代表一個資源,所以網址中不能有動詞,只能有名詞。一般來說API中的名詞要使用複數。
HTTP動詞:對於資源的操作( CURD ) ,由HTTP動詞(謂詞)表示。
- GET :從伺服器取出資源(一項或多項)。
- POST:在伺服器新建一個資源。
- PUT:在伺服器更新資源(客戶端提供改變後的完整資源)。
- DELETE :從伺服器刪除資源。
https://api.example.com/v1/zoos //动物园资源 https://api.example.com/v1/animals //动物资源 https://api.example.com/v1/employees //雇员资源
- POST /zoos :新建一個動物園GET /zoos/ID :取得某個指定動物園的資訊PUT /zoos/ID:更新某介指定動物園的資訊DELETE /zoos/D:刪除某個動物園
過濾資訊:
- #?limit=10:指定傳回記錄的數量? offset=10:指定傳回記錄的開始位置。 ?page=2&per_page=100:指定第幾頁,以及每頁的記錄數。 ?sortby=name&order=asc:指定傳回結果依照哪個屬性排序,以及排序順序。 ?animal_type_id=1:指定篩選條件
#狀態碼:
- 200 (OK )-如果現有資源已被更改201 ( created )-如果新資源被創建202 ( accepted )-已接受處理請求但尚未完成(異步處理)
- 301 (Moved Permanently )-資源的URI被更新303 ( See Other )-其他(如,負載平衡)400 ( bad request )-指稱壞請求404 (not found )-資源不存在406 (not acceptable )-服務端不支援所需表示409 (conflict)-通用衝突412 (Precondition Failed )-前置條件失敗(如執行條件更新時的衝突)415 (unsupported media type )-接受到的表示不受支持500 (internal server error )-通用錯誤回應503 (Service Unavailable )-服務目前無法處理請求
錯誤處理
###########################################################################:## # 傳回的訊息中將error作為鍵名,出錯訊息作為鍵值。 ######
{ error: “Invalid API key” }
- GET /collection:返回资源对象的列表(数组)
- GET /collection/resource:返回单个资源对象
- POST /collection:返回新生成的资源对象
- PUT /collection/resource:返回完整的资源对象
- PATCH /collection/resource:返回完整的资源对象
- DELETE /collection/resource:返回一个空文档
4.REST风格的接口测试流程:
我们直接用一张图来介绍吧5.代码编写和Postman测试:
工具:idea,mysql数据库,Postman
数据库表数据:
实体类:
@Data @ApiModel("用户实体类") public class User extends Model<User> implements Serializable { @ApiModelProperty("用户id") @NotNull(message = "用户id不能为空") private Integer id; @NotBlank(message = "用户名不能为空") @ApiModelProperty("用户名") private String name; @Min(1) @Max(100) @ApiModelProperty("用户年龄") private Integer age; @NotEmpty(message = "邮箱不能为空") @ApiModelProperty("用户邮箱") @Email private String email; @ApiModelProperty("0:未删除 1:已删除") @TableLogic private Integer deleted; @NotBlank(message = "密码不能为空") @ApiModelProperty("用户密码") private String password; }
controller层的代码(service层省略):
@Api(tags = "用户管理") @RestController @RequestMapping("/MyWebsite/user") public class UserController { @Autowired private UserServiceImpl userServiceimpl; @ApiOperation(value = "新增用户") @PostMapping public int insertUser(User user) { System.out.println("新增成功"); return userServiceimpl.insertUser(user); } @ApiOperation(value = "修改用户信息") @PutMapping public void updateUser(@RequestBody @Valid User user) { userServiceimpl.updateUser(user); System.out.println("修改成功"); } @ApiOperation(value = "删除用户", notes = "根据id删除用户") @DeleteMapping("/{id}") public int deleteUser(@ApiParam("用户id") @PathVariable @Valid Integer id) { System.out.println("删除成功"); return userServiceimpl.deleteUser(id); } @ApiOperation(value = "查询所有用户") @GetMapping public List<User> allUser() { System.out.println("查询成功"); return userServiceimpl.allUser(); } @ApiOperation(value = "id查询用户") @GetMapping("/{id}") public User selectById(@PathVariable("id") String id) { return userServiceimpl.selectById(id); } }
利用Postman测试(url路径要对应上):
查询所有用户:http://localhost:8081/MyWebsite/user
Header:Content-Type=application/json
Body:空
查询成功!
根据id查询:
查询成功!
新增用户:
查看数据库新增成功!
修改用户信息(修改id为7的姓名和年龄):
查看数据库修改成功!
根据id删除用户:
查看数据库删除成功!(deleted=1)
可能你的是直接删除了整一条数据
当查询或更新或删除不存在的数据时(或者数据不合法),都是执行失败的
还有其他接口,例如删除所有等接口,这里不一一测试了
若有不正确的地方,欢迎指出。
以上是restful介面規範與postman調試工具介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

Flask-RESTful和Swagger:Pythonweb應用程式中建立RESTfulAPI的最佳實務(第二部分)在上一篇文章中,我們探討如何使用Flask-RESTful和Swagger來建立RESTfulAPI的最佳實務。我們介紹了Flask-RESTful框架的基礎知識,並展示如何使用Swagger來建立RESTfulAPI的文件。本

Apifox 是 API 文件、調試、Mock、測試一體化協作平台,定位Postman + Swagger + Mock + JMeter。透過一套系統、一份數據,解決多個系統之間的數據同步問題。只要定義好 API 文件,API 偵錯、API 資料 Mock、API 自動化測試就可以直接使用,無需再次定義;

Django是一個Web框架,可以輕鬆建立RESTfulAPI。 RESTfulAPI是一種基於Web的架構,可以透過HTTP協定存取。在這篇文章中,我們將介紹如何使用Django來建立RESTfulAPI,包括如何使用DjangoREST框架來簡化開發過程。安裝Django首先,我們需要在本機安裝Django。可以使用pip來安裝Django,具體

使用Laravel進行RESTfulAPI開發:建立現代化的Web服務隨著網路的快速發展,Web服務的需求日益增加。而RESTfulAPI作為一種現代化的Web服務架構方式,具備輕量、靈活、易擴展的特點,因此在Web開發中得到了廣泛應用。在本文中,我們將介紹如何使用Laravel框架來建構一個現代化的RESTfulAPI。 Laravel是PHP語言中

一、RESTful概述REST(RepresentationalStateTransfer)風格是一種以資源為導向的Web應用程式設計風格,它遵循一些設計原則,使得Web應用程式具有良好的可讀性、可擴充性和可維護性。下面我們來詳細解釋一下RESTful風格的各個方面:資源標識符:在RESTful風格中,每個資源都有一個唯一的標識符,通常是一個URL(UniformResourceLocator)。 URL用於標識資源的位置,使得用戶端可以使用HTTP協定進行存取。例如,一個簡單的URL可以是:http

隨著互聯網的發展和普及,Web應用程式和行動應用程式越來越普遍。這些應用程式需要與後端伺服器進行通信,並取得或提交資料。在過去,常規的通訊方式是使用SOAP(簡單物件存取協定)或XML-RPC(XML遠端過程呼叫)。然而,隨著時間的推移,這些協議被認為過於笨重和複雜。現代應用程式需要更加輕巧和直接的API來進行通訊。 RESTfulAPI(表現層狀態轉換AP

如何使用Java開發一個基於RESTful的APIRESTful是一種基於HTTP協定的架構風格,透過使用HTTP協定的GET、POST、PUT、DELETE等方法來實現對資源的操作。在Java開發中,可以使用一些框架來簡化RESTfulAPI的開發過程,如SpringMVC、Jersey等。本文將向您詳細介紹如何使用Java開發一個基於RESTful的

在當下資訊科技不斷創新的環境下,RESTful架構風靡於各種常用的WebAPI應用程式之中,成為了新興的服務開發趨勢。而Beego框架作為Golang中一款高效能、易擴充的Web框架,出於其高效、易用、靈活等優點,被廣泛應用於RESTful服務的開發中。下文將從Beego開發RESTful服務的最佳實踐的角度,為廣大的開發者提供一些參考。一、路由設計在REST
