/when-to-use-what-rest-graphql-webhooks-grpc/ 全文7082字,阅读约需要15分钟 看过了太多关于REST的热爱和断言,我们有时会忘记,这只诸多选择之一。...为了帮助API开发者了解使用哪种API设计风格以及在什么情况下使用,我们把REST与其他三种选择放在一起进行了一个说明,即:gRPC, GraphQL和Webhooks。...总之,REST是现代微服务API领域非常高效、有效和强大的解决方案。 二、REST案例:PayPal REST API的一个示例应用是PayPal REST API。...七、Webhooks概述 GraphQL是扩展API的一种选择,gRPC是对传统方法的重新配置,Wehooks是一种完全不同的提供资源的方法,与上述的所有方法都不同。...Webhooks: 数据更新自动完成,而不需要请求。如果API主要用于更新客户端数据的场景下,最好使用Webhooks。
但这些工作都针对于 Http 接口,今天通过 when-to-use-what-rest-graphql-webhooks-grpc 一文,抛开联调时千遍一律的 Http 接口,一起看看接口还可以怎么约定...2 概述 本文主要讲了四种接口设计方案,分别是:REST、gRPC、GraphQL、Webhooks,下面分别介绍一下。...REST 基于原生 HTTP 接口,因此改造成本很小,而且其无状态的特性,降低了前后端耦合程度,利于快速迭代。 随着未来发展,REST 可能更适合提供微服务 API。...使用举例: 原文推荐参考 GitHub GraphQL API 比如查询某个组织下的成员,REST 风格接口可能是: curl -v https://api.github.com/orgs/:org/members...或者说轮询就是一种妥协的行为,当后端不支持 Webhooks 模式时。 使用举例: Webhooks 本身也可以由 REST 或者 gRPC 实现,所以就不贴代码了。
关于腾讯 IM REST API REST API 是腾讯即时通信 IM 提供给服务端的一组 HTTP 后台管理接口,如消息管理、群组管理、用户管理、会话管理等等。...REST API 接口较为原始,管理能力强大。另外,为了安全性,REST API 仅提供 HTTPS 接口,本文将主要介绍常用的消息管理API。...具体实现请参照我的文章《C# 实现访问 Web API Url 提交数据并获取处理结果》 范例运行环境 操作系统: Windows Server 2019 DataCenter .net版本: .netFramework4.0...或以上 开发工具:VS2019 C# 常用消息管理API 发送单聊消息 SendMsg方法可以在 IM 应用系统内在指定的用户之间发送文本消息内容。...API 提供了非常丰富与完善的管理功能列表,在这里我们仅是以满足自身应用需要而提取的常用帐户管理功能,更多详情请参照如下链接: REST API 接口列表 | 腾讯云 本文代码仅供您参考使用,您可以参照官方文档开发出更加贴合自身需求的应用
简介 在 Elasticsearch 中,所以的数据都是以 JSON 的格式来进行表述的。这个和其它的有些数据库,比如 Solr,它支持更多格式的数据,比如 xml, csv 等。...Elasticsearch 里的接口都是通过 REST 接口来实现的。 Index PUT twitter/_doc/1?...ES 也提供了相应的 REST 接口。...Delete doc 删除一个文档的话,我们可以使用如下的命令: DELETE twitter/_doc/1 通过查询的方式来进行查询,然后进行删除。ES 也提供了相应的 REST 接口。...来进行更新一个文档: POST _bulk { "update" : { "_index" : "twitter", "_id": 2 }} {"doc": { "city": "长沙"}} 注意:通过 bulk API
关于腾讯 IM REST API REST API 是腾讯即时通信 IM 提供给服务端的一组 HTTP 后台管理接口,如消息管理、群组管理、用户管理、会话管理等等。...REST API 接口较为原始,管理能力强大。另外,为了安全性,REST API 仅提供 HTTPS 接口。...IM 的密码,其本质是对 UserID 等信息加密后得到的密文,如何生成 UserSig 请参照我的文章《C# 生成腾讯云 IM 之 TLSSigAPIv2 UserSig》,通过 TLSSigAPIv2...具体实现请参照我的文章《C# 实现访问 Web API Url 提交数据并获取处理结果》 范例运行环境 操作系统: Windows Server 2019 DataCenter .net版本: .netFramework4.0...或以上 开发工具:VS2019 C# 常用帐户管理API 添加单个账号 AddAccount 方法为 IM 应用系统创建一个内部 ID 帐户,重复添加只生成一个 ID。
这里我们不得不提到REST API。...另外,REST API的书籍很多,但是完整完善实践丰富的设计指导并不多见,我们有幸看到了微软团队的作品——Microsoft REST API Guidelines,因此才有了此篇内容。...翻译的不对之处,请多多指教。 什么是REST API?...简单的来说,在REST API:URL定位资源,用HTTP动词(GET,POST,PUT,DELETE)描述操作。前面说了,REST 指的是一组架构约束条件和原则。...那么满足这些约束条件和原则的应用程序或设计就是 RESTful。 为什么用REST API? 1.前后端分离主要以API为界做接洽的,这样就会有很多的API,API的表现力更强,更加便于理解。
Webhooks起初看起来像是API,但它们略有不同。它们之间的主要区别在于,webhooks不需要发出请求即可获得响应,而API则需要发送请求才能获得响应。...使用Webhooks可以接收,而API需要您检索。 一个示例是GitHub Webhook与GitHub API。对于GitHub API,您每次需要信息时都需要发送GET请求。...详细比较 为了更好地说明,我们可以看两种情况:使用Webhook和使用API。 使用API:假设我们想要某个服务的Github存储库的最新提交日期。...每当有更新时,GitHub Webhooks会将数据移交给我们的服务,而GitHub API要求我们从GitHub检索数据。 Webhooks的一些缺点是兼容性和支持。...由于API更详细和手动,因此很容易从A点到B点快速集成它们。某些服务尚不支持Webhooks,这使得设置它们更加困难。每个服务通常都会提供一个API。
RESTful API 的存在是 web 开发历史上的一个里程碑。在本文中,我将和你探讨几种节省 REST API 开发时间的方法,并给出相关的 Node.js 示例。...RESTful API 背后的思想是遵循REST 规范中描述的所有架构规则和限制的方式进行开发。然而,实际上,这在实践中基本上是不可能的。 一方面,REST 包含了太多模糊和模棱两可的定义。...REST API 规范能做什么? 尽管存在上面说到的缺点,但使用合理的方法,REST 仍然是创建真正优秀 api 的一个绝佳选择。...因为你通过高质量的 API 规范实现的 api 将会是一致的,具有清晰的结构、良好的文档和高的单元测试覆盖率。 通常,REST API规范与其文档相关联。...这将使使用你的 API 的开发人员感到轻松,并且肯定比手工填写 REST API 文档模板要好。
因此,这些准则的一个目标是确保任何支持基本 HTTP 协议的客户端都可以简单且一致地使用 Microsoft REST API。...本文档建立了 Microsoft REST API 开发人员应该遵循的指南, 以便统一一致地开发 API。...允许Service服务开发人员利用其他Service服务的基础来开发一致的 REST API 节点。 允许合作伙伴 (如非微软团队) 使用这些准则来设计自己的 REST API。...这些准则适用于 Microsoft 或其合作伙伴公开发布的所有 REST API 服务。...显然,实现或必须与某些外部定义的 REST API 互操作的 REST 服务必须与那些 API 兼容,而无法遵循这些准则。
大家好,又见面了,我是你们的朋友全栈君。 The Representational State Transfer (REST)架构风格不是可以购买的技术,也不是可以添加到软件开发项目中的库。...“无状态”这个术语是一个至关重要的部分,因为它允许应用程序以不一样的方式进行通信。 一个RESTful API服务通过统一资源定位器(URL)公开。这个逻辑名称将资源的标识与所接受或返回的标识分开。...这是最常见的请求,每次在浏览器中键入URL并单击return、选择书签或单击锚点引用链接时执行。 对于与RESTful API的编程交互,可以使用十几种或更多的客户端API或工具。...基于rest的请求的一个重要方面是,每个请求包含足够的状态来响应请求。这就允许服务器上的可见性和无状态性、扩展系统所需的属性以及识别正在发出的请求。这种状态还允许缓存特定的结果。...如果没有对RESTful架构实现的更宏观的理解,很容易失去实践的意图。 REST最好用于管理系统,通过将产生和使用它的技术产生和使用的信息解耦。
前面我们说了,如果API的设计更规范更合理,在很大程度上能够提高联调的效率,降低沟通成本。那么什么是好的API设计?这里我们不得不提到REST API。...关于REST API的书籍很多,但是完整完善实践丰富的设计指导并不多见,我们有幸看到了微软团队的作品——Microsoft REST API Guidelines,因此才有了此篇内容。...5 Taxonomy 分类 As part of onboarding to Microsoft REST API Guidelines, services MUST comply with the taxonomy...Microsoft REST API 准则基本要求的一方面就是 服务的分类必须符合以下定义。...错误不会影响整体 API 的可用性。 译者注:错误可以理解成客户端参数错误,通常返回“4XX”状态码,并不影响整体的API使用。
前言 Yarn Rest Api 返回的数据都是XML格式,需要解析XML。...每秒消耗的内存总和 vcoreSecond string 所有的container每秒消耗的核心数总和 queueUsagePercentage double 所属队列的资源使用百分比 clusterUsagePercentage...appsCompleted int 完成的应用程序数量 appsPending int 等待的应用程序数量 appsRunning int 正在运行的应用程序数量 appsFailed int 失败的应用程序数量...appsKilled int 被杀死的应用程序数量 reservedMB long 保留的内存量(MB) availableMB long 可用的内存量(MB) allocatedMB long 分配的内存量...int 不良节点数 decommissioningNodes int 停用的节点数 decommissionedNodes int 退役的节点数 rebootedNodes int 重新启动的节点数
----关于腾讯 IM REST API REST API 是腾讯即时通信 IM 提供给服务端的一组 HTTP 后台管理接口,如消息管理、群组管理、用户管理、会话管理等等。...REST API 接口较为原始,管理能力强大。另外,为了安全性,REST API 仅提供 HTTPS 接口,本文将主要介绍常用的群组管理API。...具体实现请参照我的文章《C# 实现访问 Web API Url 提交数据并获取处理结果》 范例运行环境 操作系统: Windows Server 2019 DataCenter .net版本: .netFramework4.0...或以上 开发工具:VS2019 C# 常用群组管理API 创建群组 CreateGroup 方法为 IM 应用系统创建一个群组。...API 提供了非常丰富与完善的管理功能列表,在这里我们仅是以满足自身应用需要而提取的常用帐户管理功能,更多详情请参照如下链接: REST API 接口列表 | 腾讯云 本文代码仅供您参考使用,您可以参照官方文档开发出更加贴合自身需求的应用
稍稍总结了些经验,在这篇文章里讲讲如何撰写「合格的」REST API。 RFC一致性 REST API一般用来将某种资源和允许的对资源的操作暴露给外界,使调用者能够以正确的方式操作资源。...一个合格的REST API需要根据Accept头来灵活返回合适的数据。...请求数据验证 我们从数据流入REST API的第一步 —— 请求数据的验证 —— 来保证安全性。...一般而言,如果对REST API的安全性要求比较高,那么,所有的API的所有操作均需得到授权。...其他 做到了接口一致性(符合RFC)和安全性,REST API可以算得上是合格了。当然,一个实现良好的REST API还应该有如下功能: rate limiting:访问限制。
The Representational State Transfer (REST)架构风格不是可以购买的技术,也不是可以添加到软件开发项目中的库。...REST是一种世界观,将信息提升为我们构建的体系结构的第一流元素。 Roy Fielding博士的论文“架构风格和基于网络的软件架构设计”介绍并整理了用于描述“RESTful”系统的思想和术语。...“无状态”这个术语是一个至关重要的部分,因为它允许应用程序以不一样的方式进行通信。 一个RESTful API服务通过统一资源定位器(URL)公开。这个逻辑名称将资源的标识与所接受或返回的标识分开。...这是最常见的请求,每次在浏览器中键入URL并单击return、选择书签或单击锚点引用链接时执行。 对于与RESTful API的编程交互,可以使用十几种或更多的客户端API或工具。...如果没有对RESTful架构实现的更宏观的理解,很容易失去实践的意图。 REST最好用于管理系统,通过将产生和使用它的技术产生和使用的信息解耦。
关于腾讯 IM REST API REST API 是腾讯即时通信 IM 提供给服务端的一组 HTTP 后台管理接口,如消息管理、群组管理、用户管理、会话管理等等。...REST API 接口较为原始,管理能力强大。另外,为了安全性,REST API 仅提供 HTTPS 接口,本文将主要介绍常用的会话管理API。...具体实现请参照我的文章《C# 实现访问 Web API Url 提交数据并获取处理结果》 范例运行环境 操作系统: Windows Server 2019 DataCenter .net版本: .netFramework4.0...或以上 开发工具:VS2019 C# 常用会话管理API 查询账号会话总未读数 GetC2C_UnreadMsgNum方法可以在 IM 应用系统内查询特定账号的单聊总未读数(包含所有的单聊会话)或者单个单聊会话的未读数...API 提供了非常丰富与完善的管理功能列表,在这里我们仅是以满足自身应用需要而提取的常用帐户管理功能,更多详情请参照如下链接: REST API 接口列表 | 腾讯云 本文代码仅供您参考使用,您可以参照官方文档开发出更加贴合自身需求的应用
REST API REST(表述性状态传输)API 是一种应用程序接口 (API) 的架构风格,它使用 HTTP 请求来访问和使用数据。...GraphQL 与 REST: GraphQL 和 REST API 之间的主要区别在于 GraphQL 是一种查询语言,而 REST 是一种基于网络的软件的架构概念。...可用性 REST API 使用 URI 和 HTTP 技术,这使得 API 很难预测在联系新端点时会发生什么。REST 中缺少指定的版本控制要求允许提供者采用他们自己的方法。...因此,无法像 REST API 那样缓存查询。 但是,由于可用的工具,客户端缓存优于 REST。...与 REST API 相比,这是一个明显的区别,在 REST API 中,每个 状态代码都指向某种类型的响应。
什么是REST API?...API-Request.png REST API响应 响应的有效负载可以是任何实用的东西:数据、HTML、图像、音频文件等等。...REST API挑战 REST的成功很大程度上归功于它的简单性。开发人员可以自由地实现RESTful API,但这可能会导致进一步的挑战。...REST API必须识别用户和他们的权利,但它可能不关心哪个应用程序在调用API。 REST API安全性 RESTful API提供了另一种访问和操作你的应用程序的途径。...REST API链接和开发工具 有许多工具可以帮助所有语言的RESTful API开发。值得注意的选项包括: Swagger[20]:帮助设计、记录、模拟、测试和监控REST APIs的各种工具。
理解和使用内容协商 我们的开发者在发送一个 REST API 请求的同时,根据应用场景,针对相同的资源,可能会期待不同的返回形式。 比如,我希望根据用户客户端语言,同一个资源的内容可以返回不同的语言。...IBM developerWorks 的文件服务标签云的 API REST API 请求,要求返回 XML 格式数据: GET https://www.ibm.com/developerworks...使用 HTTP 头进行缓存处理 在 REST 的构架中,我们除了在与后台的数据交换中,需要有一个良好的缓存机制外,针对 REST API 请求都是在远端用 HTTP 发起这一特点,还需要为网络缓存进行更多考虑...IBM developerWorks 的带有电子标签的文件服务 API REST API 请求: GET https://www.ibm.com/developerworks/mydeveloperworks...,可以帮助我们更好的设计 REST API: 批量更新: 当用户需要更新多个资源的时候,你打算让开发者一次次的发送 HTTP 请求逐个更新吗?
Microsoft REST API指南 摘要 Microsoft REST API指南作为一种设计原则,鼓励应用程序开发人员通过RESTful HTTP接口访问资源。...本文档建立了 Microsoft REST API 开发人员应该遵循的指南, 以便统一一致地开发API。...允许Service开发者利用其他Service的基础上来开发一致的REST API端点。 允许合作伙伴(例如,非Micosoft团队)使用这些准则来设计自己的 REST API。...如:实现或必须与某些外部定义的REST API互操作的REST服务必须与哪些外部的API兼容,而无法遵循这些准则。而还有一些服务也可能具有需要特殊性能需求,必须采用其他格式,例如二进制协议。...符合Microsoft REST API准则的API应该支持PATCH。 7.4.3.