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。

目录
相关文章
|
1月前
|
JSON API 数据库
解释如何在 Python 中实现 Web 服务(RESTful API)。
解释如何在 Python 中实现 Web 服务(RESTful API)。
26 0
|
1月前
|
Web App开发 监控 Java
|
3月前
|
网络协议 网络架构
HTTP方法有哪些?
HTTP方法有哪些?
|
8天前
|
JSON 安全 API
Flask-Login与Flask-RESTful:扩展你的应用功能
【4月更文挑战第16天】本文介绍了两个实用的Flask扩展——Flask-Login和Flask-RESTful。Flask-Login提供用户认证和会话管理,简化了登录、注销和保护路由的逻辑。而Flask-RESTful则助力构建RESTful API,支持多种HTTP方法和请求解析。通过这两个扩展,开发者能轻松增强Flask应用的功能性,实现安全的用户认证和高效的API交互。
|
12天前
|
域名解析 网络协议 应用服务中间件
阿里云服务器配置免费https服务
阿里云服务器配置免费https服务
|
22天前
|
前端开发 Java API
构建RESTful API:Java中的RESTful服务开发
【4月更文挑战第3天】本文介绍了在Java环境中构建RESTful API的重要性及方法。遵循REST原则,利用HTTP方法处理资源,实现CRUD操作。在Java中,常用框架如Spring MVC简化了RESTful服务开发,包括定义资源、设计表示层、实现CRUD、考虑安全性、文档和测试。通过Spring MVC示例展示了创建RESTful服务的步骤,强调了其在现代Web服务开发中的关键角色,有助于提升互操作性和用户体验。
构建RESTful API:Java中的RESTful服务开发
|
28天前
|
安全 API 开发者
构建高效可扩展的RESTful API服务
在数字化转型的浪潮中,构建一个高效、可扩展且易于维护的后端API服务是企业竞争力的关键。本文将深入探讨如何利用现代后端技术栈实现RESTful API服务的优化,包括代码结构设计、性能调优、安全性强化以及微服务架构的应用。我们将通过实践案例分析,揭示后端开发的最佳实践,帮助开发者提升系统的响应速度和处理能力,同时确保服务的高可用性和安全。
27 3
|
1月前
|
程序员
深入理解HTTP协议本质与应用
HTTP是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。简单来说,如果你不懂HTTP协议,那就相当于是个只有“半桶水”的程序员。在这个课程中,带你一起花最少的时间,用最少的精力,掌握最多、最全面、最系统的HTTP相关知识
14 3
深入理解HTTP协议本质与应用
|
1月前
|
XML JSON API
通过Flask框架创建灵活的、可扩展的Web Restful API服务
通过Flask框架创建灵活的、可扩展的Web Restful API服务