首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用 ASP.NET Web API 构建超媒体 Web API

我们要关注的是 API 能否正确将 HTTP 作为应用程序协议并尽可能利用超媒体。通过启用超媒体,您可以创建可自我发现的 API。这没有为不提供文档找借口,但是 API 在可更新性方面更灵活了。...由于超媒体和链接,客户端与服务器端的业务工作流已取消关联。 而且,可以使用超媒体和链接改进 API 设计的可演变性。随着服务器上业务工作流的不断完善,它可以提供用于新功能的其他链接。...此模型允许任意 Web API 通过基于不同因素(如用户权限或客户端要使用的版本)提供新表单来自由演变。 用于 XML 和 JSON 的超媒体?...中支持超媒体 在前文中,我们讨论了在设计 Web API 时要遵循的一些超媒体原理。...来创建超媒体 Web API,网址为 github.com/howarddierking/RestBugs。

2.8K50
您找到你想要的搜索结果了吗?
是的
没有找到

PSR-13 超媒体链接

PSR-13 超媒体链接 在 HTML 和各种 API 格式的上下文中,超媒体链接已经变成 Web 越来越重要的一部分。...然而遗憾的是,没有一种通用单一的超媒体格式,也没有一种通用的方式来表示链接间的格式。 该规范旨在为 PHP 开发人员提供一种简单的、通用的方式来表示一个独立于所使用的序列化格式的超媒体链接。...这反过来又允许系统将超媒体链接的响应序列化为一种或多种有线格式,而不依赖于决定这些链接应该是什么的过程。...2119 RFC 4287 RFC 5988 RFC 6570 IANA Link Relations Registry Microformats Relations List 规范 基本链接 一个超媒体链接至少是由这些组成的...有些超媒体格式支持模板链接而有些则不支持,并且可能有一种特殊的方式来表示链接是一个模板。一个不支持 URI 模板格式化程序 必须 忽略它遇到的任何模板的链接。

13020

WCF RESTful服务的Google Protocol Buffers超媒体类型

要遵循REST的原则, protocol buffers 应作为一个新的超媒体类型的代表。 在当前版本(.NET 4) 的Windows通讯基础(WCF),包含一个新的媒体类型,需要相当数量的努力。...推荐大家假期可以看下这本书《REST实战》http://book.douban.com/subject/6854551/ 下面我们来介绍如何使用Google Protocol Buffers,只定义一个超媒体类型...ProtoBufferFormatter: 自定义超媒体类型是通过创建自定义的MediaTypeFormatter,实现OnWritetoStream() 和 OnReadFromStream() 方法进行序列化和反序列化处理...这个例子我们使用入门:构建简单的Web API 的代码和WCF Web API Preview 6。...ProtoBuf序列化的压缩对比 Android上GTalk以及Push机制的XMPP数据选择使用protobuf格式而非XML Leverage T4Scaffolding for WCF Web API

91470

我们应该重新定义REST吗?

REST 与传输协议无关(实际上它并不限于 HTTP),而且真正的超媒体驱动的服务不需要预定义其操作(因为它们可以在运行时动态发现)。 “这是一个 HTTP API,不是 REST。这里没有超媒体。”...我将在以后的博文中详细介绍它们,和其他针对超媒体 API 的新兴解决方案。 在本博文中,我会只概述一个理论上的超媒体 API 的工作机制。...我之所以说是理论上的,是因为截至 2021 年,超媒体 API 尚未走出学术界,成为现实成果。 未来的超媒体 API 将由自动化代理消费,其消费方式与当今人类与网站交互的方式完全相同。...为一个超媒体 API 开发的客户端应用程序可以很容易地分叉和修改为另一个由超媒体驱动的 Web 服务。能够使用通用语法消费任何超媒体 API 的“智能客户端”可能成为现实。...超媒体 API 也可以是 HTTP API,但这不是必需的。 截至 2021 年,虽然存在一些 bug 多多的演示应用,但真正的,由超媒体驱动的智能客户端的开发仍局限在纯粹的学术尝试层面。

60710

Hypermedia-Driven Application Architecture 介绍

HDA 架构通过扩展现有的HTML基础设施,允许超媒体开发人员创建更强大的超媒体驱动交互来实现这一目标。...特别是,HDA继续使用超媒体作为应用程序状态的引擎(HATEOAS),而大多数SPA则放弃了HATEOAS,转而使用客户端模型和数据(而不是超媒体API。...超媒体驱动应用程序架构与REST(表征状态转移)架构风格紧密相关,但它更注重在应用程序中使用超媒体作为应用状态(应用程序数据和行为的组合)的引擎。...超媒体超媒体是连接资源的链接和控件。超媒体使客户端可以通过单击链接或激活控件来导航到其他资源或执行操作。...超媒体控件:超媒体控件是一种特殊类型的超媒体元素,它不仅提供导航功能,还允许客户端执行操作。这些控件可以是表单、按钮或其他交互式元素,它们可以用于创建、更新或删除资源,或执行其他操作。

9210

超媒体:将客户端服务端分离进行到底

RESTful Web 客户端是整个 REST 风格应用(服务端和客户端)的一部分,服务端已经有不少著作,《RESTful Web Clients :基于超媒体的可复用客户端》则是 HATEOAS 的RESTful...———— 本文摘自新书《RESTful Web Clients:基于超媒体的可复用客户端》。...本书包括以代码为中心的章节信息和对相关重要主题的探索,比如表述器模式、人机交互模型和 Web API 在版本控制上的挑战等。直击下方阅读原文,开启架构全新境界,体悟开发深度思辨。...之前很多REST相关书籍聚焦于如何打造服务端的RESTful API,本书则着重研究RESTful客户端,介绍了如何把一个针对服务端规约硬编码的定制客户端重构为一个支持HATEOAS的通用客户端,并提供了多格式支持...、超媒体类型、版本化、微服务等相关问题的全面指导。

1K20

使用ASP.NET Core 3.x 构建 RESTful API - 2. 什么是RESTful API

超媒体作为应用程序状态的引擎(HATEOAS):REST架构风格中,客户端是通过超媒体与服务器端动态提供的一个“应用网络”来进行交互的。...这些链接就是超文本,而超媒体就是超文本的泛化。针对API来说,它就是程序状态的引擎。换句话说,超媒体会驱动如何消费和使用API,它会告诉API消费者使用这些API能做什么,例如:能删除这个资源吗?...Level 3,超媒体。...这意味着,API支持HATEOAS(超媒体作为应用状态的引擎, Hypermedia as the Engine of Application State),这也是统一资源接口/界面约束里面的一条。...也就是说只有你的API达到了Level 3水平之后,才可以谈论你的API是不是RESTful API

62010

基于场景选择微服务的API范式:REST、GraphQL、Webhooks和gRPC

REST的主要特性之一是它是超媒体使能的。事实上,超媒体和REST的关系是如此紧密,以至于Roy Fielding曾经声明,如果API不支持超媒体,那么从技术上讲就不是RESTful。...超媒体意味着在REST API中,客户端和服务器是松耦合的,这使客户端和服务器在资源操作方面获得了极大的自由。也因此,快速迭代、服务器进化、资源弹性等元素才得以实现。...白小白: 所谓超媒体,即超文本+多媒体,这里借用了超文本的概念并在其基础上有所延伸。1963年,德特•纳尔逊(Ted Nelson)创造了术语“超文本”。...超媒体的概念在后文还将解决大量与GraphQL相关的问题。...(来自成富的文章 https://dwz.cn/X6VG4lCS)所以,超媒体这个概念对于REST是如此的重要,也响应了前文讲到的“Roy Fielding曾经声明,如果API不支持超媒体,那么从技术上讲就不是

2.6K30

Spring认证指南:了解如何使用 Spring 创建超媒体驱动的 RESTful Web 服务

Spring认证指南-了解如何使用 Spring 创建超媒体驱动的 RESTful Web 服务。...(Spring中国教育管理中心) 构建超媒体驱动的 RESTful Web 服务 本指南将引导您完成使用 Spring 创建“Hello, World”超媒体驱动的 REST Web 服务的过程。...超媒体是 REST 的一个重要方面。它使您可以构建在很大程度上解耦客户端和服务器的服务,并让它们独立发展。为 REST 资源返回的表示不仅包含数据,还包含指向相关资源的链接。...你将建造什么 您将使用 Spring HATEOAS 构建一个超媒体驱动的 REST 服务:一个 API 库,可用于创建指向 Spring MVC 控制器的链接、构建资源表示并控制如何将它们呈现为支持的超媒体格式...您刚刚使用 Spring HATEOAS 开发了一个超媒体驱动的 RESTful Web 服务。

3.9K60

送书 | DDDServerlessRESTFul Web Clients,总有一款适合你

本书内容包括: 无服务器计算的初始步骤 重要的设计模式和架构 编写 AWS Lambda 函数并使用 API Gateway 使用像 Auth0 和 Firebase 这样的关键服务来组合无服务器应用程序...保护、部署和管理无服务器架构 《RESTful Web Clients:基于超媒体的可复用客户端》 ?...[美] Mike Amundsen 著 曾著 徐必涛 译 适读人群 :web及客户端的学习者和开发人员 强大的基于Web的REST和超媒体风格的API变得日益普遍,但很多开发者却依赖定制的客户端代码,并没有将相同的技术和模式应用到超媒体客户端中...将仅含HTML的Web应用转换为JSON API服务 克服维护普通JSON风格客户端应用的挑战 使用表述器模式将输出格式与内部对象模型解耦 探索使用HAL(超文本应用语言)构建的客户端应用 用请求、解析...、等待循环(RPW)模式解决可重用客户端问题 理解使用Siren内容类型构建客户端应用的利弊 通过采用一种与时俱进的设计美学来处理API的版本化 比较JSON、HAL、Siren和Collection+

1.1K20

AngularJS 的 API:模块 API、指令 API、服务 API、过滤器 API、路由 API

AngularJS 是一款流行的前端 JavaScript 框架,提供了丰富的 API 接口,用于实现前端应用的各种功能。...本文将详细介绍 AngularJS 的 API,包括模块 API、指令 API、服务 API、过滤器 API、路由 API 等内容,帮助开发者充分了解和熟练运用 AngularJS 的各项功能。1....下面是一些常用的模块 API:(1) angular.module使用 angular.module 方法来创建一个模块。...总结本文详细介绍了 AngularJS 的 API 接口,包括模块 API、指令 API、服务 API、过滤器 API、路由 API 等。...通过学习和掌握这些 API,开发者可以更加灵活地使用 AngularJS 构建各类前端应用。希望本文对您了解和使用 AngularJS API 有所帮助。

20370

你真的知道你喜欢REST而不是RPC的原因吗?

下面是我们列举的一些指标,来比较这两种风格: 颜值 设计性 API 定义语言 可预测性和语义 超媒体性 可缓存性 可用性 颜值 ?...看起来两种风格都可以设计出丑的API,也都可以设计出美的API。平手。 设计性 设计RPC API看起来更容易: 当你处理一个现有的系统时,因为它通常面向操作,所以基于RPC的API与之天然匹配。...但RPC API的设计需要设计人员严格的实现一致性API,因为实际上它没有什么约束。完全依赖于设计人员的一致性执行能力。 如果你主要是处理数据,REST API可能更容易一些。...超媒体性 这两种风格都是使用的HTTP的请求,所以都可以设计出超媒体(hypermedia)的API。 平手。 可缓存性 我们经常可以在网上看到选择REST的一个致命的理由就是http 缓存。...总比分 指标 胜出方 颜值 平手 设计性 平手 API 定义语言 平手 可预测性和语义 REST 超媒体性 平手 可缓存性 平手 可用性 平手 REST真的就赢了吗?

1.1K60

我所理解的RESTful Web API

资源在浏览器中以超媒体的形式呈现,通过点击超媒体中的链接可以获取其它相关的资源或者对当前资源进行相应的处理,获取的资源或者针对资源处理的响应同样以超媒体的形式再次呈现在浏览器上。...由此可见,超媒体成为了驱动客户端会话状态的转换的引擎。 借助于超媒体这种特殊的资源呈现方式,应用状态的转换体现为浏览器中呈现资源的转换。...如果将超媒体进一步抽象成一般意义上的资源呈现(Representation )方式,那么应用状态变成了可被呈现的状态(REpresentational State)。...实际上这可以视为一份超文本/超媒体文档。当用户得到这样一份文档的时候,可以利用自身的内容获得某部影片基本的信息,还可以利用相关的“链接”得到其它相关内容的详细信息。... 24: Fielding在他的论文中将REST定位为“分布式超媒体应用”的架构风格,而超媒体的核心就是利用“链接”相关的信息结成一个非线性的网,所以从一点也可以看出

97670

API 网关 ( API gateway )

极大的方便了 API系统 的开发与维护。如果有需要,API 网关也可以根据各终端使用的不同通信协议来进行协议适配,从而方便应用层进行数据采集和分析。 什么是 API 网关?...在想了解什么是API 网关 ( API Gateway ),首先我们需要了解什么是微服务。 微服务 微服务是一种用于构建应用的架构方案。...为什么要有API 网关? 我们已经了解了什么是微服务。那么为什么微服务要有API 网关呢? 疯狂的客户端 ( Mad client ) 哈哈,开个玩笑的标题。...当然,Api 网关可不仅仅有路由的功能。 API 网关可以干什么? 下面我们来简单捋一捋 API 网关都可以做啥吧。...总结 本编文章讲解了一下什么是 API 网关、API 网关 可以解决什么问题。并对一些常见的解决方案进行了简单分析。

5.3K10
领券