news 2026/9/7 0:45:20

还不懂 RESTful 接口是什么?快进来看看

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
还不懂 RESTful 接口是什么?快进来看看

RESTful是指基于REST(Representational State Transfer,表现层状态转移)架构风格的Web服务。REST是一种设计原则和架构风格,而不是标准,它用于指导如何构建易于交互、高效、可扩展的网络系统。RESTful服务通常使用HTTP协议的标准方法来处理网络上的资源。

在现今互联网时代,Web服务已经成为了连接不同系统、平台和设备的关键桥梁。而RESTful架构风格作为一种简单而强大的设计理念,正在逐渐成为构建这些Web服务的首选方式,在做接口测试时,大家都有听说过RESTful风格的接口,那么到底什么是RESTful,以及它有哪些设计原则?

什么是RESTful?

"REST"(Representational State Transfer,表现层状态转移)是一种设计原则和架构风格,用于构建分布式系统,强调使用统一的接口和无状态通信来操作网络上的资源,"RESTful"则是基于REST原则设计的Web服务,使用HTTP协议的标准方法来实现对网络资源的操作。

1、每一个URI代表一种资源

在RESTful中,资源是系统中的任何实体或对象,每个资源都有一个唯一的URI来标识

  • json格式数据

  • text文本

  • 图片、视频等

2、资源的表示形式

客户端和服务器之间,传递资源的某种表现形式

  • 通过请求头中Content-Type来指明传给服务端的参数类型

  1. “text/plain”, “application/xml”, “text/html”,

  2. “application/json”, “image/gif”, “image/jpeg”

  3. "application/x-www-form-urlencoded"

AI写代码

  • 通过请求头中Accept来指明希望接受服务端的数据类型

Accept: application/json,application/xml;q=0.9,*/*;q=0.8
3、通过HTTP动词(请求方法)描述操作

客户端通过HTTP动词,指明对服务器端资源要进行的操作,包括GET/POST/PUT/PATCH/DELETE等

请求方法对应的操作
POSTCreate-创建
GETRead-查询
PUTUpdate/Replace-更新/替换
PATCHPartial Update/Modify-部分更新/替换
DELETEDelete-删除

RESTful设计规则

URL设计
1、URI命名

尽量使用名词复数形式,不要使用getXXX,setXXX这种动词和名词混合在一起

差的设计:

  1. /getProjects

  2. /listUsers

  3. /users

  4. /setTestcaseById?Id=66

好的设计:

  1. /projects

  2. /users

2、过滤条件

比如/projects返回项目信息,如果项目信息过多,服务端不可能将所有的数据全部返回给前端,一般我们会加上过滤条件​​​​​​​

  1. ?limit=10 :指定返回记录的数量

  2. ?offset=10 :指定返回记录的开始位置

  3. ?page=2&size=10 :指定第几页和每页的数据条数

  4. ?sort=name :指定返回结果按照哪个属性排序,以及排序顺序

3、API版本

在URL中呈现版本号:

  1. http://api.lemon.site/app/0.1/

  2. http://api.lemon.site/app/0.2/

  3. http://api.lemon.site/app/1.1/

也可在请求头中呈现:​​​​​​​

  1. Accept: application/vnd.example.v0.2+json

  2. Accept: application/vnd.example+json;version=1.1

请求方法

常见的HTTP请求方法有下面四个(括号里是对应的SQL命令)​​​​​​​

  1. GET(SELECT) :从服务器获取资源(一项或多项)

  2. POST(CREATE) :在服务器新建一个资源

  3. PUT(UPDATE) :在服务器更新资源(客户端提供改变后的完整资源)

  4. DELETE(DELETE) :从服务器删除资源

还有三个不常用的HTTP动词:​​​​​​​

  1. PATCH(UPDATE WHERE) :在服务器部分更新(更新)资源(客户端提供改变的属性)

  2. HEAD :获取资源的元数据

  3. OPTIONS :获取关于资源的哪些属性是客户端可以改变的信息

比如:​​​​​​​

  1. GET /projects # 获取所有项目信息

  2. POST /projects # 创建一个新项目

  3. GET /projects/6 # 获取ID为6的项目信息

  4. PUT /projects/6 # 更新ID为6的项目信息(全更新)

  5. PATCH /projects/6 # 更新ID为6的项目信息(部分更新)

  6. DELETE /projects/6 # 删除ID为6的项目

  7. GET /projects/6/interfaces # 获取ID为6的项目信息中所有的接口信息

  8. GET /projects/6/interfaces/1 # 获取ID为6的项目信息中ID为1的接口信息

状态码​​​​​​​
  1. 200 OK - [GET]:服务器成功返回用户请求的数据

  2. 201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功

  3. 204 NO CONTENT - [DELETE]:用户删除数据成功

  4. 400 INVALID REQUEST - [POST/PUT/PATCH]:用户请求有误(请求参数有误)

  5. 401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)

  6. 403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的

  7. 404 NOT FOUND - [*]:用户请求的路径不存在

  8. 500 INTERNAL SERVER ERROR - [*]:服务器发生错误

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/7 5:18:12

生活小窍门查询小程序,核心功能,收录清洁,收纳,养生等生活小窍门,支持按关键词搜索,收藏常用技巧,离线查看,应用场景,中老年人解决生活中的小问题,如去除水垢,收纳衣物等,简单实用。

生活小窍门查询小程序 下面是一个基于Python的生活小窍门查询小程序,专为中老年人设计,具有简洁易用的界面和实用的功能。 import json import os import tkinter as tk from tkinter import ttk, messagebox, simpledialog from datetime import da…

作者头像 李华
网站建设 2026/9/6 2:11:55

**免费游戏角色AI配音软件2025推荐,适配独立开发者与小

免费游戏角色AI配音软件2025推荐,适配独立开发者与小型工作室一、行业背景与核心痛点对于独立开发者与小型工作室而言,为游戏角色注入灵魂的配音工作,往往是预算与创意之间最大的矛盾点。据《2025年全球独立游戏开发市场报告》显示&#xff0…

作者头像 李华
网站建设 2026/9/6 14:17:25

如何用3个核心模块构建Three.js手势交互系统:实战指南

如何用3个核心模块构建Three.js手势交互系统:实战指南 【免费下载链接】hammer.js 项目地址: https://gitcode.com/gh_mirrors/ham/hammer.js 你是否曾在3D网页应用中体验过卡顿的旋转操作?或者为缩放控制不够精准而烦恼?传统鼠标交互…

作者头像 李华
网站建设 2026/9/6 6:49:36

3步掌握JSMpeg播放器数据监控与性能优化实战指南

3步掌握JSMpeg播放器数据监控与性能优化实战指南 【免费下载链接】jsmpeg MPEG1 Video Decoder in JavaScript 项目地址: https://gitcode.com/gh_mirrors/js/jsmpeg 还在为视频播放卡顿问题头疼?想深入了解用户观看行为却无从下手?今天我们就一起…

作者头像 李华
网站建设 2026/9/7 5:15:46

Gesturefy:Firefox鼠标手势插件完全指南

Gesturefy:Firefox鼠标手势插件完全指南 【免费下载链接】Gesturefy Navigate, operate, and browse faster with mouse gestures! A customizable Firefox mouse gesture add-on with a variety of different commands. 项目地址: https://gitcode.com/gh_mirror…

作者头像 李华
网站建设 2026/9/6 3:41:22

千万不能错过!这款外卖点单小程序让商家效率飙升

千万不能错过!这款外卖点单小程序让商家效率飙升引言随着移动互联网的快速发展,外卖行业已经成为餐饮业不可或缺的一部分。为了提升运营效率和服务质量,越来越多的商家开始采用外卖点单小程序。本文将深入探讨一款高效的外卖点单小程序——妙…

作者头像 李华