HTTP方法在热舒服服务(RESTful Services)中的应用

简介: 前言 首先说明热舒服服务为本人音译(RESTful Services)出来的名词,因为这样比按词义翻译更容易上口。 Http常用的传输方法一共有5种, DG3P (DELETE,GET,PATCH,POST,PUT),用来对应web数据传输中增删改查操作,此外还有OPTIONS和HEAD,这些年随着NodeJS的兴起和前后端分离开发方法的流行,热舒服服务的概念也越来越得到越来越多人的支持,本文主要介绍热舒服服务和HTTP方法在其中的应用。

前言

首先说明热舒服服务为本人音译(RESTful Services)出来的名词,因为这样比按词义翻译更容易上口。

Http常用的传输方法一共有5种, DG3P (DELETE,GET,PATCH,POST,PUT),用来对应web数据传输中增删改查操作,此外还有OPTIONS和HEAD,这些年随着NodeJS的兴起和前后端分离开发方法的流行,热舒服服务的概念也越来越得到越来越多人的支持,本文主要介绍热舒服服务和HTTP方法在其中的应用。

何为REST

REST为具象状态传输(Representational State Transfer)的缩写, 是Roy Thomas Fielding博士2000年在他的博士论文中提出来的概念,
主要包含以下几个方面:

单向通信 Client-Server

所有的接口都是由客户端向服务器发起。

无状态 Stateless

无状态每个请求都是独立的,不会接口之间存在进行依赖,客户端维护请求的状态,比如当前客户端请求的是第7页数据,那么这个第7页的状态是保存在客户端而不是服务端。

客户端缓存 Cache

客户端服务端的静态数据对象相关缓存,以减少相关请求。

接口统一 Uniform Interface

统一的接口,任何资源都可以通过唯一的接口url访问。

系统分层 Layered System

限制组件的行为,对不同职责的组件进行分层。

按需加载 Code-On-Demand

代码按需加载,优化系统的打开速度。

何为RESTful API

RESTful就是遵循REST原则设计的API,主要有如下二个原则

  1. 直观,语义化的URI。 比如

    • http://test.api.com/employees 返回了所有的职工信息。
    • http://test.api.com/employees/1111 返回了1111职工的详情信息
    • 每个资源都可以通过唯一的URL获取到,比如下边的url
  2. 使用HTTP方法定义API的操作。比如:

    • 使用 http://test.api.com/employees的接口,使用了POST方法时候,创建员工,然后返回最新的列表信息。
    • URL为http://test.api.com/employees/1111,使用PUT方法,修改1111的相关信息。
    • 同样使用 http://test.api.com/employees/remove/1111的接口,使用了DELETE方法,删除1111的员工。

HTTP方法的使用规范

HTTP常用的方法主要有5种,DG3P

DELETE 删除操作

这个比较简单,从英文意思上就可以猜到

GET 获取数据操作

这个也比较简单,所有要求服务器返回数据的操作就是GET

POST 创建

创建新数据的时候用POST。

PUT 更新或者替换

修改一个已经存在的数据或者替换的时候,用PUT

PATCH 更新或者替换

PATCH和PUT差不多,但从语义上来看,PATCH偏向于数据的修正。
比如用户输入了一串电话号码,可能用PUT,但第二次用户修改电话号码,就属于PATCH,PATCH请求中只包含需要修改的字段,而不是全部

如何传递多个参数

RESTful API经常问到的问题就是如何设计多个参数,答案是:It depends。以下通过一个具体的例子来说明这个情况:
1.假如要修改一个员工。 那么使用的API为http://test.api.com/employees/1111, 使用的HTTP方法为PUT,
POST中包含的数据

{
     name: 'abc',
     phone: '13xxxxxx'
}

这里的name和phone并没有在api的url中体现。
2.加入要单项修改一个员工的数据,比如那种一操作就生效的接口,甚至都不用保存,那么使用的API为http://test.api.com/employees/1111/:patch/:value ,这里使用了PATCH的方法,patch参数为要修改的属性,value参数为修改后的值,那么这样就可以很优雅的设计这个API。

目录
相关文章
|
2月前
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
116 7
|
2月前
|
JSON Java Apache
非常实用的Http应用框架,杜绝Java Http 接口对接繁琐编程
UniHttp 是一个声明式的 HTTP 接口对接框架,帮助开发者快速对接第三方 HTTP 接口。通过 @HttpApi 注解定义接口,使用 @GetHttpInterface 和 @PostHttpInterface 等注解配置请求方法和参数。支持自定义代理逻辑、全局请求参数、错误处理和连接池配置,提高代码的内聚性和可读性。
157 3
|
2月前
|
前端开发 JavaScript 安全
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第27天】本文介绍了HTTP/2和HTTPS在前端性能调优中的应用。通过多路复用、服务器推送和头部压缩等特性,HTTP/2显著提升了Web性能。同时,HTTPS确保了数据传输的安全性。文章提供了示例代码,展示了如何使用Node.js创建一个HTTP/2服务器。
67 3
|
2月前
|
开发者
HTTP 协议请求方法的发展历程
【10月更文挑战第21天】
|
21天前
|
安全 网络安全 数据安全/隐私保护
内网/局域网IP地址申请https证书方法
为内网/局域网IP地址申请HTTPS证书,可增强数据传输的安全性。首先确定固定的内网IP地址,选择可信的证书颁发机构,注册并申请免费或付费SSL证书,提交相关信息,支付费用(如有)。证书申请成功后,下载并配置于服务器,确保通过浏览器访问时显示为安全连接。注意定期更新证书,确保持续的安全保障。此过程适用于局域网内部通信加密,提升内网服务的安全水平。
|
2月前
|
前端开发 UED 开发者
CSS Sprites和图标字体在网页图标加载优化中的应用。CSS Sprites通过合并多图标减少HTTP请求,提升加载速度
本文探讨了CSS Sprites和图标字体在网页图标加载优化中的应用。CSS Sprites通过合并多图标减少HTTP请求,提升加载速度;图标字体则以字体形式呈现图标,便于调整样式。文章分析了两者的优缺点及应用场景,并提供了应用技巧和注意事项,旨在帮助开发者提升页面性能,改善用户体验。
30 5
|
2月前
|
缓存 安全 网络安全
HTTP/2与HTTPS在Web加速中的应用
HTTP/2与HTTPS在Web加速中的应用
|
2月前
|
安全 应用服务中间件 网络安全
免费ip地址https证书申请方法
IP SSL证书用于保障IP地址与浏览器间的数据传输安全,多数需付费购买。JoySSL现提供免费试用版,申请流程包括:访问官网、注册账号(需输入特定注册码230922)、选择证书类型、填写申请信息、验证IP控制权、等待审核、下载及部署证书。确保IP地址独立可控,信息准确,及时续期。
|
2月前
|
安全
HTTP 协议的请求方法
【10月更文挑战第21天】
|
2月前
|
缓存 安全 前端开发
HTTP 协议的请求方法在实际应用中有哪些注意事项?
【10月更文挑战第29天】HTTP协议的请求方法在实际应用中需要根据具体的业务场景和需求,合理选择和使用,并注意各种方法的特点和限制,以确保网络通信的安全、高效和数据的一致性。