RESTful API设计模式:您需要知道的一切

RESTful API设计模式:您需要知道的一切 2017年9月22日| 在APP开发,设计,移动| 作者:NATASHA M. 随着软件技术的发展和频繁创建新软件,完全适应软件正成为一项挑战。主要挑战是兼容性和可扩展性。

当一个组织将其收入投入特定软件时,他们希望软件在一段时间内满足他们的要求,但很快就会遇到软件无法与传统软件正常通信的挑战。为了实现这些通信,软件行业提出了应用程序接口(API)的概念。API可以指定软件组件如何相互交互。随着API概念的出现,软件开发人员更容易确保组件能够以明确定义的方式相互通信。可以为基于web的系统,数据库系统,操作系统,软件库甚至计算机硬件创建API。

随着互联网的出现,这些组织很快就面临着另一项挑战。公司发现很难使用各种软件和操作系统在互联网和计算机系统之间建立通信。为克服障碍,创建了RESTful API。

RESTful API设计

代表性国家转移 RESTful Web服务有助于建立计算机系统和Internet之间的互操作性。RESTful API使用HTTP请求执行GET,PUT,POST和DELETE操作。在设计这些API时,应该不考虑以下属性:

性能:API组件之间的交互不应产生任何性能问题。 可伸缩性:API应该能够支持大量组件以及这些组件之间的通信。 简单性:API不应该非常复杂。 可修改性:为了应对不断变化的环境和要求的挑战,API应易于修改,以满足要求。 可移植性:API应该是可移植的,以便脚本可以与数据一起从一个系统移动到另一个系统。 可靠性:如果组件或数据级别出现任何故障,API应该足够可靠,以避免系统级别的任何类型的故障。 只有在基于约束开发API时,才能实现API的上述非功能属性。这些约束定义了服务器响应或处理来自客户端的请求的方式。这些最关键的限制很少是:

客户端 - 服务器体系结构:此特定约束有助于将接口问题与数据存储问题分开。通过解决此约束,开发人员向API添加了可移植性功能,因为它为开发人员提供了跨多个平台使用相同API的灵活性。这种约束的最大好处是,组件可以独立发展,这有助于满足扩展要求。

缓存能力:API应该能够将自己声明为可缓存的。这将禁止客户端使用过期或过期数据。如果正确定义了缓存能力,则有助于减少大量客户端 - 服务器通信,从而提高性能。

分层系统:如果开发API以支持分层系统,则可以通过使用负载平衡机制来提高服务器的性能。

统一接口:这是REST API设计中最基本的约束之一,因为它有助于解耦架构,从而导致组件的独立演变。此约束的四个变体是:

a) 请求中的资源标识

b) 通过代表进行资源操纵

c) 自我描述性信息

d) 超媒体作为应用程序状态的引擎

设计移动平台

RESTful API设计模式 开发人员可以遵循各种API设计模式来构建API。下面列出了这些模式中的一小部分:

1)无状态:API开发人员想要存储状态信息的最后一个地方是应用程序服务器。因此,应用程序服务器应始终保持无状态,以便可以毫不费力地扩展它们。

2)内容协商: 如果开发人员希望资源支持多个表示,则他们可以使用内容协商,也可以使用单独的URL进行单独的表示。他们拥有的另一个选择是使用混合方法,并将内容协商资源重定向到特定URL。

3)URI模板:创建URI模板为客户端启用URL组合。此外,它还有助于最终用户记录URL访问模式。

4)意图设计:开发的API不应公开内部业务对象。因此,应开发API以确保它们满足用户提供和面对的用户案例的要求。

5)版本控制:如果API是按照要求设计的,并且它按预期工作,那就不是这样,但是如果API不能按预期工作,那么开发人员应该对现有版本进行必要的修改。 API的版本。因此,在API中添加版本号始终是一个好习惯,以跟踪API版本。

6)授权:RESTful API设计应该能够分配和修改授权权限,以允许根据需求对资源进行读写访问。因此,API开发人员应确保API不应为所有用户提供对系统中存在的每个对象的访问权限。

7)批量操作: 应该以可以支持批量操作的方式开发API。这通常需要满足客户的要求,这些要求将发出较少的请求,但这些请求将执行多个或批量操作。

8)分页:使用分页服务器创建的API不止一个目的。分页有助于减少将传递给客户端的数据量。它还有助于防止在应用程序服务器上执行不必要的计算。

9)Unicode:现在,对于API开发人员来说,确保API在Web服务中支持的不仅仅是英文字符非常重要。如果在URL中使用Unicode字符,则必须在开发API时考虑它。

10)错误记录:这是一个非常重要的错误识别和错误修复活动。API开发人员应确保收集错误消息的过程得到简化和明确定义。清楚地区分由客户端输入错误引起的错误和API本身引起的错误非常重要。因此,将这些日志记录在单独的日志文件中非常重要。

转载于:https://juejin.im/post/5cb7d4b6e51d456e72077905

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值