RESTful Web服务:初学者简单教程

本文是为那些熟悉Web开发但对REST和RESTful API不甚了解的人准备的。内容涵盖REST的基本概念,REST原则,HTTP请求方法,回复代码,cURL请求以及REST API端点的命名约定。通过本教程,读者将能够理解如何构建和交互RESTful API。
摘要由CSDN通过智能技术生成

如果您熟悉现代Web开发,那么您将遇到REST和API等术语。如果您使用过API或听说过这些术语,但没有完全了解如何构建自己的API或它们如何通信和工作,那么本教程RESTful Web服务 - 初学者的简单教程就是为您准备的。

在本教程中,我将分享RESTRESTful API,REST原则概述,理解请求和响应,REST API端点以及最后结论。

另请阅读: Web服务面试问题
 

了解REST和RESTful API

REST是一个抽象概念。它不是框架,编程语言或软件。

REST也称为Representational State Transfer。它传达了Web服务的架构风格。

REST提供了一组用于在不同系统之间共享数据的标准或约束。
RESTful系统是实现REST的系统。

首先,在理解术语RESTful API之前,我们将了解什么是API。

一个API(应用编程接口)是允许软件程序之间的通信的接口。甲的RESTful API是遵循标准和REST的限制的API。
在Web API中,请求通过URL端点(见下文)传递给服务器,并在处理完请求后发送响应。响应通常是像JSON这样的格式的数据。

REST原则概述

对于REST,我们提到了需要遵循的标准和约束,以允许在不同系统之间共享数据。让我们看看4个指导约束:

1。服务器 - 客户端: 服务器(存储和操作数据)与客户端(发送请求和显示响应)之间的关注点分离。

2.无状态:每个请求所需的所有信息都放在每个请求中,而不依赖于会话。

3.统一接口:可以输入浏览器位置栏的路径使用URI标准来标识资源。

4.可缓存:服务器和客户端可以缓存资源。
 

什么是URL,HTTP,请求和响应

如果您有浏览互联网,那么您必须遇到所有网站都有以http或https(安全版本)开头的URL(统一资源定位符)这一事实。
URL是万维网页面的地址。

超文本传输​​协议(HTTP)是一种协议,换句话说,它允许服务器和互联网上的客户端之间的通信。

只考虑HTTP只能用于从服务器请求网站是不正确的。它不止于此。

当您点击网络上的URL时,您实际上是在对该特定资源执行GET请求,并且浏览器上显示的网页是响应的主体。我稍后会在这篇文章中讨论GET和其他类型的请求。

HTTP通过启动到服务器端口的TCP(传输控制协议)连接(用于https的443和用于http的80)来发出请求,然后等待响应状态和正文的服务器。

通常,请求必须包含URL,方法,正文和标题信息。

请求方法(HTTP动词)

有四种主要使用的HTTP方法。这些方法也称为HTTP 谓词。这些用于与Web API交互。这些方法定义了对任何给定资源采取的操作。

HTTP请求方法松散地遵循CRUD(创建,读取,更新,删除)的范例。
下表将清楚以上陈述。

动作请求方法(Http动词)              

读取            GET                                              

创建          POST                                           

更新         PUT                                             

删除          DELETE                          


GET请求仅用于读取操作。它不会改变服务器的状态。每次您在浏览器中点击URL(例如https://javahungry.blogspot.com或https://google.com)时,您都会向Google的服务器发送GET请求(blogspot也归Google所有)。RESTful服务中的

POST请求用于创建新资源。POST请求的最常见用法是注册为网站或应用程序的用户。当您提交表单时,可能会将具有用户数据的POST请求发送到服务器,这将进一步将该信息写入数据库。RESTful服务中的

PUT请求用于更新现有资源。PUT最常见的用法请求是编辑现有用户的配置文件。PUT幂等的,POST则不是。
幂等意味着产生相同的结果而不管同一次呼叫的次数。换句话说,进行多个相同的请求会产生相同的结果。

请考虑以下示例:
 

 int temp =  8 ;

 temp ++  ;


int temp = 8的第一行是幂等的。无论执行第一行的次数如何,temp都将始终显示值8。
第二行temp ++不是幂等的。执行第二行100次将产生不同的结果然后执行10次。

DELETE请求仅用于删除现有资源。

回复代码:

一旦从客户端向服务器触发请求,服务器将返回HTTP响应。
HTTP响应包含元数据,例如标头以及身体。
状态代码是响应中最重要的部分,它指示请求是否成功,是否存在错误或是否必须采取任何其他操作。

您将了解的最常见响应代码是404,表示未找到。4xx类状态代码表示客户端错误。404是它的一部分。
状态代码通常分为五类,每个类包含一系列响应。

1xx     信息
2xx     成功
3xx     重定向
4xx    客户端错误
5xx     服务器错误

您可能知道的其他常见响应是301 Moved Permanently,用于重定向,换句话说,将网站重定向到新URL。 
另一个常见的响应是500内部服务器错误,当服务器上发生意外情况而导致无法执行触发请求时,会出现此错误。

RESTful API及其HTTP谓词的所有响应都应在2xx范围内。

请求             响应
GET                  200(成功)
POST              201(已创建)
PUT                 200(成功)
DELETE      200(成功),202(已接受),204(无内容)

200是表示请求被成功处理的响应。它通常用作GETPUT请求的响应。

POST将返回201创建的响应,以显示已创建新资源。

DELETE有一些可以接受的回复。例如,202表示已接受请求,而204请求表示由于资源不存在而没有要返回的内容。

cURL请求

可以使用cURL测试资源请求的状态代码。cURL是一个命令行工具,用于通过URL传输数据。使用curl,后跟-i-include标志,后跟URL,将向URL发送GET请求。从服务器发回的响应将包含标头和正文。

例如 :
 

卷曲-include HTTPS://www.google.com


谷歌的服务器响应如下:
 

HTTP / 2  200

日期:周一 22年7月2019年 11 59 40 GMT

到期: - 1

cache - control: private  max - age = 0

content - type: text / html ; charset = ISO - 8859 - 1

...



如您所见,我们发送的请求已成功处理。我们得到了200状态码,用的版本一起HTTPHTTP版本可以是HTTP / 1.1或HTTP / 2)

由于在这个要求我们请求了一个网站(Google.com),内容类型(MIME类型)返回的是text / html。
在RESTful API中,最可能的内容类型是application / json来表示响应是JSON。

我们还可以通过稍微不同的URL来查看不同类型的响应。
我们将在没有www的情况下在Google上执行curl命令

例如:
 

卷曲-i HTTPS://google.com



谷歌的服务器响应如下:
 

HTTP / 2  301

位置: https://www.google.com/

content - type: text / html ; charset = UTF - 8

...



正如您在上面的回复中所看到的,Google会将google.com重定向到www.google.com。301状态代码表示正在重定向的资源。
 

REST API端点

在服务器上部署代码时,换句话说,就是在服务器上创建API。然后,您可以通过端点访问数据。
 

什么是端点?

端点是可以接受和处理POSTGETDELETEPUT请求的请求的URL 。

API URL将包含以下部分:

a。root:   例如https://example.domain.com/或https://example.domain.com/v2 
简而言之,root可能包含协议,域名和版本。

湾 路径:例如https://example.com / books /   或
https://example.com / books / 123 /    提供资源

c的唯一位置。可选查询字符串: https :  //example.com/books ?limit = 10 && type = fiction
可选的键值对用于分页,排序和过滤。

在IT行业,当大众找狗网的工程师说API是RESTful API时,他们指的是构建API URL端点的以下命名约定。
 

RESTful API的标准命名约定

1.路径区分大小写。例如https://example.com/books/3/https://example.com/Books/3/不同

.2。路径应为复数,例如http://example.com/ books / 5 / is正确。以下是不正确的http://example.com/ book / 5 / 

3.路径应使用连字符而不是下划线以小写字母书写。

4.端点不应在URL中显示文件扩展名。

5.端点应使用名词而不是动词。换句话说,REST URL不应包含删除或添加等字词。

上述公约仅是指导原则。遵循REST标准没有严格的规则。但是,遵循上述约定,您的API易于阅读和理解,也是一致的。

这一切都是为了这一天。如果您喜欢上面关于RESTful Web服务的文章:初学者的简单教程或有疑问,请在评论中提及。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值