专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 告诉你什么是rest api开发

告诉你什么是rest api开发

更新时间:2022-09-20 10:23:42 来源:动力节点 浏览1013次

相信大家对Java Rest是什么已经有所了解,浏览器使用的 REST 可以被认为是互联网的语言。随着云使用的增加,云消费者正在使用 API 来公开和组织对 Web 服务的访问。REST 是构建 API 的合理选择,允许用户在分布式环境中灵活地连接、管理和交互云服务。RESTful API 被 Amazon、Google、LinkedIn 和 Twitter 等网站使用。

告诉你什么是rest api开发

RESTful API 的工作原理

RESTful API 分解事务以创建一系列小模块。每个模块处理事务的底层部分。这种模块化为开发人员提供了很大的灵活性,但是对于开发人员来说,从头开始设计他们的 REST API可能是一个挑战。目前有几家公司提供模型供开发者使用;Amazon S3、云数据管理接口 ( CDMI ) 和OpenStack Swift提供的模型是最受欢迎的。

RESTful API 使用命令来获取资源。任何给定时间戳的资源状态称为资源表示。RESTful API 使用 RFC 2616 协议定义的现有 HTTP 方法,例如:

GET 检索资源;

PUT 更改或更新资源的状态,可以是对象、文件或块;

POST 创建该资源;和

删除以将其删除。

使用 REST,网络组件是用户请求访问的资源——就像一个实现细节不明确的黑匣子。所有调用都是无状态的;RESTful 服务在执行之间不能保留任何内容。

REST API 支持的数据格式包括:

应用程序/json

应用程序/xml

应用程序/x-wbe+xml

应用程序/x-www-form-urlencoded

多部分/表单数据

用途

因为调用是无状态的,REST 在云应用程序中很有用。如果出现故障,无状态组件可以自由重新部署,并且可以扩展以适应负载变化。这是因为任何请求都可以指向组件的任何实例;没有任何东西需要被下一次交易记住。这使得 REST 更适合 Web 使用。RESTful 模型在云服务中也很有帮助,因为通过 API 绑定到服务是控制 URL 解码方式的问题。云计算和微服务几乎肯定会让 RESTful API 设计成为未来的规则。

RESTful API 设计和架构约束

RESTful API 设计由 Roy Fielding 博士在其 2000 年的博士论文中定义。为了成为真正的 RESTful API,Web 服务必须遵守以下六个 REST 架构约束:

使用统一界面 (UI)。资源应该可以通过单个 URL 唯一标识,并且只有通过使用网络协议的底层方法,例如使用 HTTP 的 DELETE、PUT 和 GET,才能操作资源。

基于客户端-服务器的. 客户端和服务器之间应该有一个清晰的界限。UI 和请求收集问题是客户的领域。数据访问、工作负载管理和安全是服务器的领域。客户端和服务器的这种松散耦合使得每个都可以独立地开发和增强。

无状态操作。所有客户端-服务器操作都应该是无状态的,并且所需的任何状态管理都应该在客户端而不是服务器上进行。

RESTful 资源缓存。所有资源都应该允许缓存,除非明确指出缓存是不可能的。

分层系统。REST 允许由多层服务器组成的架构。

按需编码。大多数情况下,服务器将以 XML 或JSON的形式发回资源的静态表示。但是,在必要时,服务器可以向客户端发送可执行代码。

常见的 REST API 挑战

除了设计和架构限制之外,个人还必须面对 REST API 的一些挑战。一些可能具有挑战性的概念可能包括:

端点一致性——端点路径应遵循通用的 Web 标准保持一致,这可能难以管理。

API版本控制——端点 URL 在内部使用或与其他应用程序一起使用时不应失效。

响应时间长且数据过多——返回的资源量会随时间增加,从而增加负载和响应时间。

导航路径和用户输入位置——因为 REST 使用 URL 路径作为输入参数,确定 URL 空间可能具有挑战性。

安全性——有很多方面需要关注,包括使用:

HTTPS;

阻止来自未知 IP 地址和域的访问;

验证 URL;

阻止意外的大负载;

记录请求;和

调查失败。

身份验证——使用常见的身份验证方法,例如 HTTP 基本身份验证(允许使用 base64 编码的用户名:密码字符串)、API 密钥、JSON Web 令牌和其他访问令牌。例如,OAuth 2.0 有利于访问控制。

请求和数据——请求可能包含比所需更多的数据和元数据,或者可能需要更多请求才能获取所有数据。可以为此调整 API。

API 测试——设置和运行可能是一个漫长的过程。该过程的每个部分都可能很长,也可能具有挑战性。也可以使用实用工具 Curl 在命令行中进行测试。

可能具有挑战性的部分测试过程包括:

最初设定

架构更新

测试参数组合

序列 API 调用

验证测试参数

系统集成

定义错误代码和消息。

对于错误代码,更常见的做法是使用标准 HTTP 错误代码。这些更经常被客户和开发人员认可。

除了解析主体或检查错误之外,错误处理可能无法区分响应是否成功。

如果大家想了解更多相关知识,可以关注一下动力节点的Java在线学习,里面的课程内容从入门到精通,细致全面,很适合没有基础的小伙伴学习,希望对大家能够有所帮助。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>