通过超媒体升级REST Web API

Amy Palamountain在最近的新西兰技术大会上进行演讲时透露,当我们开始为自己的业务构建一个新的Web API的时候,我们想要构建一个相当优秀的API,在Internet上答案就是构建一个REST风格的API。
\那么REST风格的API对于你的问题始终都是最佳解决方案么?Amy认为这依赖于它的上下文,但是对于公共API她的经验是,应该使用REST风格并且要基于HTTP和Web的核心理念构建。

\

SOAP和其他的RPC(远程过程调用)API与两种执行上下文有关,分别是客户端上的和服务器上的上下文,这种情况下客户端需要远程调用服务器上的一个操作。这是一种以操作为中心的设计,需要预先确定一种协议,但是这样客户端和服务器就紧耦合了。Amy认为对于公共API而言这是不合适的,因为缺乏可用性和灵活性,例如如果服务器上发生了变化那么客户端就很有可能会无法工作。

\

Amy认为从RPC风格中解脱出来的第一步是将操作转移到暴露领域概念的资源中,例如实体。这种移动的另一部分是拥抱HTTP和URI,通过实现和HTTP规范更加一致的API增强它们的可用性并使其更加容易使用。

\

但是如何使用内置到客户端中的API依然有一些固有的问题,资源之间的关系变化依然会破坏客户端并且需要重新部署。

\

Amy策略的第二步是添加超媒体,使用链接(Links)显示资源是如何关联的。在一个Web API中使用链接确保包含所有需要的信息,没有带外的信息。超媒体解决了固有的问题,因此应该在客户端内部:

\
  • 链接显示资源之间是如何关联的\
  • 链接显示如何与问题空间交互,以及下一个可能的操作\
  • 链接能够根据发展情况动态地对问题空间中的选项进行增加和移除\

但是有一些实际的问题需要考虑,特别是在客户端上。超媒体API需要超媒体驱动的客户端,客户端必须理解服务器使用的媒体类型。媒体类型描述了链接和表单等内容的语义含义。

\

在她的呈现中,Amy使用了一个带有一个服务器和两个客户端的示例,一个使用资源和URI,另一个使用超媒体,这两个都使用了ASP.NET Web API 框架通过C#语言编写。

\

查看英文原文Level Up Your REST Based Web API with Hypermedia

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值