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。

目录
相关文章
|
19天前
|
前端开发 JavaScript 安全
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第27天】本文介绍了HTTP/2和HTTPS在前端性能调优中的应用。通过多路复用、服务器推送和头部压缩等特性,HTTP/2显著提升了Web性能。同时,HTTPS确保了数据传输的安全性。文章提供了示例代码,展示了如何使用Node.js创建一个HTTP/2服务器。
34 3
|
2月前
|
Java Maven Windows
使用Java创建集成JACOB的HTTP服务
本文介绍了如何在Java中创建一个集成JACOB的HTTP服务,使Java应用能够调用Windows的COM组件。文章详细讲解了环境配置、动态加载JACOB DLL、创建HTTP服务器、实现IP白名单及处理HTTP请求的具体步骤,帮助读者实现Java应用与Windows系统的交互。作者拥有23年编程经验,文章来源于稀土掘金。著作权归作者所有,商业转载需授权。
使用Java创建集成JACOB的HTTP服务
|
7天前
|
缓存 安全 网络安全
HTTP/2与HTTPS在Web加速中的应用
HTTP/2与HTTPS在Web加速中的应用
|
20天前
|
前端开发 安全 应用服务中间件
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第26天】随着互联网的快速发展,前端性能调优成为开发者的重要任务。本文探讨了HTTP/2与HTTPS在前端性能优化中的应用,介绍了二进制分帧、多路复用和服务器推送等特性,并通过Nginx配置示例展示了如何启用HTTP/2和HTTPS,以提升Web应用的性能和安全性。
20 3
|
29天前
|
网络协议 物联网 网络性能优化
物联网协议比较 MQTT CoAP RESTful/HTTP XMPP
【10月更文挑战第18天】本文介绍了物联网领域中四种主要的通信协议:MQTT、CoAP、RESTful/HTTP和XMPP,分别从其特点、应用场景及优缺点进行了详细对比,并提供了简单的示例代码。适合开发者根据具体需求选择合适的协议。
51 5
|
1月前
|
关系型数据库 MySQL 数据库
vertx 的http服务表单提交与mysql验证
本文介绍了如何使用Vert.x处理HTTP服务中的表单提交,并通过集成MySQL数据库进行验证,包括项目依赖配置、表单HTML代码和完整的Vert.x服务代码。
19 2
|
1月前
|
XML JSON API
深入浅出:RESTful API 设计实践与最佳应用
【9月更文挑战第32天】 在数字化时代的浪潮中,RESTful API已成为现代Web服务通信的黄金标准。本文将带您一探究竟,了解如何高效地设计和维护一个清晰、灵活且易于扩展的RESTful API。我们将从基础概念出发,逐步深入到设计原则和最佳实践,最终通过具体案例来展示如何将理论应用于实际开发中。无论您是初学者还是有经验的开发者,这篇文章都将为您提供宝贵的指导和灵感。
|
2月前
|
安全 网络安全 数据安全/隐私保护
HTTP与HTTPS协议区别及应用场景
在互联网高速发展的今天,HTTP与HTTPS作为数据传输的基石,作用至关重要。HTTP允许客户端与服务器间传输超文本文档,但其数据传输过程未加密,存在安全隐患;HTTPS则在此基础上加入了SSL/TLS协议,实现了数据加密传输,增强了安全性,广泛应用于电子商务、网上银行、政府网站及社交媒体平台等涉及敏感信息传输的领域,有效保护了用户隐私和数据安全。随着网络安全意识提升,HTTPS正逐渐成为主流。
|
2月前
|
网络协议 物联网 网络性能优化
物联网江湖风云变幻!MQTT CoAP RESTful/HTTP XMPP四大门派谁主沉浮?
【9月更文挑战第3天】物联网(IoT)的兴起催生了多种通信协议,如MQTT、CoAP、RESTful/HTTP和XMPP,各自适用于不同场景。本文将对比这些协议的特点、优缺点,并提供示例代码。MQTT轻量级且支持QoS,适合大规模部署;CoAP基于UDP,适用于低功耗网络;RESTful/HTTP易于集成但不适合资源受限设备;XMPP支持双向通信,适合复杂交互应用。通过本文,开发者可更好地选择合适的物联网通信协议。
40 2
|
3月前
|
机器学习/深度学习 Ubuntu Linux
在Linux中,如何按照该要求抓包:只过滤出访问http服务的,目标ip为192.168.0.111,一共抓1000个包,并且保存到1.cap文件中?
在Linux中,如何按照该要求抓包:只过滤出访问http服务的,目标ip为192.168.0.111,一共抓1000个包,并且保存到1.cap文件中?
下一篇
无影云桌面