首頁 web前端 js教程 restful介面規範與postman調試工具介紹

restful介面規範與postman調試工具介紹

Aug 09, 2022 pm 03:37 PM
postman restful

最近學習了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 :從伺服器刪除資源。
我們以動物園(zoo)舉個例子(包括各種動物和員工的資訊):

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风格的接口测试流程
我们直接用一张图来介绍吧
restful介面規範與postman調試工具介紹5.代码编写和Postman测试
工具:idea,mysql数据库,Postman
数据库表数据:
restful介面規範與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:空
restful介面規範與postman調試工具介紹
查询成功!
根据id查询:
restful介面規範與postman調試工具介紹
查询成功!
新增用户
restful介面規範與postman調試工具介紹
查看数据库新增成功!
restful介面規範與postman調試工具介紹
修改用户信息(修改id为7的姓名和年龄):
restful介面規範與postman調試工具介紹
查看数据库修改成功!
restful介面規範與postman調試工具介紹
根据id删除用户
restful介面規範與postman調試工具介紹
查看数据库删除成功!(deleted=1)
可能你的是直接删除了整一条数据
restful介面規範與postman調試工具介紹
当查询或更新或删除不存在的数据时(或者数据不合法),都是执行失败的
还有其他接口,例如删除所有等接口,这里不一一测试了
若有不正确的地方,欢迎指出。

以上是restful介面規範與postman調試工具介紹的詳細內容。更多資訊請關注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)

Flask-RESTful和Swagger: Python web應用程式中建立RESTful API的最佳實務(第二部分) Flask-RESTful和Swagger: Python web應用程式中建立RESTful API的最佳實務(第二部分) Jun 17, 2023 am 10:39 AM

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

國產API管理神器 Apifox 好用嗎? 國產API管理神器 Apifox 好用嗎? Jul 26, 2022 pm 08:44 PM

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

使用Django建立RESTful API 使用Django建立RESTful API Jun 17, 2023 pm 09:29 PM

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

使用Laravel進行RESTful API開發:建構現代化的Web服務 使用Laravel進行RESTful API開發:建構現代化的Web服務 Aug 13, 2023 pm 01:00 PM

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

Python Flask RESTful怎麼使用 Python Flask RESTful怎麼使用 Apr 29, 2023 pm 07:49 PM

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

使用PHP建立RESTful API的步驟 使用PHP建立RESTful API的步驟 Jun 17, 2023 pm 01:01 PM

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

如何使用Java開發一個基於RESTful的API 如何使用Java開發一個基於RESTful的API Sep 21, 2023 pm 03:53 PM

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

Beego開發RESTful服務的最佳實踐 Beego開發RESTful服務的最佳實踐 Jun 23, 2023 am 11:04 AM

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

See all articles