首页
学习
活动
专区
圈层
工具
发布

4种主流的API架构风格对比

为了快速、大规模地集成不同的应用程序,API 使用协议或规范来定义那些通过网络传输的消息的语义和信息。这些规范构成了 API 的体系结构。 在过去,人们已经发布了多种不同的 API 架构风格。...不同时间的 API 架构风格,图源:Rob Crowley 今天,许多 API 的使用者将 REST 称作“消亡的 REST”(REST in peace),并且为 GraphQL 感到欢欣鼓舞。...GraphQL 的工作机制 GraphQL 从构建模式(Schema)开始。模式是对于用户可以在 GraphQL API 中进行的所有查询及其返回的所有类型的描述。...在查询语句到达后端应用程序时,GraphQL 操作将根据整个模式进行解释,并向前端应用程序返回解析到的数据。...GraphQL 的优势 具有类型的模式:GraphQL 提前公开了它能做什么,从而提高了其可发现性。通过将客户端指向 GraphQL API,我们可以发现什么查询语句是可用的。

2.7K20

GraphQL是API的未来,但它并非银弹

事实上,许多专家认为,如果不是非常必要,就应该尽量不引入 API 版本。话虽如此,是什么阻碍了你运行两个版本的 GraphQL 模式?我不认为这是个好主意,但技术上是可行的。...如果我们不那样做,那就是人的问题,而不是技术的问题。 5 提高客户端性能 接下来的一段很短,是关于 GraphQL 如何提高客户端性能和减少网络往返。...如果希望提高开发人员的工作效率,就不要将 OAS 文件放入 Git 存储库,然后就收工了。你应该运营一个开发者门户,可以在上面搜索并浏览 API。...我想专门用一个段落来介绍 API 用例。有了 OAS 或 GraphQL 模式并不意味着 API 就有了良好的文档记录。API 用户可以用 API 做什么?如何用?什么样的用例好?什么样的不好?...我赞同,GraphQL 是 API 的未来,但是出于不同的原因。 较好的性能和较小的有效负载并不是 GraphQL 特有的特性。

2.4K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    27 个实用的 Visual Studio Code 扩展插件,让工作效率翻倍

    GraphQL 扩展包括自动完成功能——它会在您键入时建议在查询中使用的字段和参数,从而更容易编写有效的 GraphQL 代码。此功能可为您节省时间并降低出现语法错误的可能性。...它安装了一个内置的 linter,可以检查您的代码是否有错误并提出修复建议。使用此扩展可防止 GraphQL 错误并提高效率。...这个 VS Code 扩展还包括一个强大的搜索功能,允许您通过消息、作者或哈希快速找到特定的提交。它还可以比较提交,从而轻松查看不同版本代码之间的差异。...此扩展还允许您按重要性对评论进行优先排序,并具有强大的搜索功能,可让您按关键字或类型快速找到特定评论。...有了它,您可以快速识别并更正正则表达式模式中的错误。 此外,此扩展包括有关正则表达式语法的大量文档以及可以轻松复制并粘贴到您的代码中的常见正则表达式模式库。

    20.9K40

    27 个实用的 Visual Studio Code 扩展插件,让我们的工作效率翻倍

    GraphQL 扩展包括自动完成功能——它会在您键入时建议在查询中使用的字段和参数,从而更容易编写有效的 GraphQL 代码。此功能可为您节省时间并降低出现语法错误的可能性。...它安装了一个内置的 linter,可以检查您的代码是否有错误并提出修复建议。使用此扩展可防止 GraphQL 错误并提高效率。...这个 VS Code 扩展还包括一个强大的搜索功能,允许您通过消息、作者或哈希快速找到特定的提交。它还可以比较提交,从而轻松查看不同版本代码之间的差异。...此扩展还允许您按重要性对评论进行优先排序,并具有强大的搜索功能,可让您按关键字或类型快速找到特定评论。...有了它,您可以快速识别并更正正则表达式模式中的错误。 此外,此扩展包括有关正则表达式语法的大量文档以及可以轻松复制并粘贴到您的代码中的常见正则表达式模式库。

    1.4K20

    Elasticsearch:提升 Elasticsearch 性能

    这包括你需要多少分片和副本、数据索引的频率以及如何处理更新和删除。请详细阅读 “Elasticsearch:我的 Elasticsearch 集群中应该有多少个分片?”...优化你的查询:Elasticsearch 是一个强大的搜索引擎,但重要的是要确保你的查询针对性能进行了优化。 这包括尽可能使用过滤器而不是查询,以及使用分页来限制返回的结果数量。...从多个线程或进程发送数据将有助于使用集群的所有资源,减少每次 fsync 的成本并提高性能。如果你是使用编程语言来实现数据写入,尽量采用 Elastic 官方所提供的丰富的客户端库来进行写入。...更多阅读:Elasticsearch:如何提高查询性能性能Active shards 应该与 CPU 成正比:为了提高 write-heavy 用例的性能,刷新间隔应该增加到一个更大的值,例如 30s,...并且应该增加 primary shards 以将写请求分配到不同的节点.

    65010

    全文搜索引擎选ElasticSearch还是Solr?

    总之,两者都是功能丰富的搜索引擎,只要设计和实现得当,它们或多或少都能提供相同的性能。本篇文章的总体内容大致如下图: ? 该图由园友ReyCG精心绘制并提供 1 什么是全文搜索 什么是全文搜索引擎?...,准确,高效的搜索算法 排名搜索 - 首先返回最佳结果 许多强大的查询类型:短语查询,通配符查询,邻近查询,范围查询等 现场搜索(例如标题,作者,内容) 按任何字段排序 使用合并结果进行多索引搜索 允许同时更新和搜索...Elasticsearch vs. Solr。哪一个更好?他们有什么不同?你应该使用哪一个? ?...Solr贡献者和提交者来自许多不同的组织,而Elasticsearch提交者来自单个公司。 成熟度 Solr更成熟,但ES增长迅速,我认为它稳定。 文档 Solr在这里得分很高。...对于95%的用例,任何一种选择在性能方面都会很好,剩下的5%需要用它们的特定数据和特定的访问模式来测试这两种解决方案。 从操作上讲,Elasticsearch使用起来比较简单 - 它只有一个进程。

    1.2K00

    全文搜索引擎选 ElasticSearch 还是 Solr?

    索引大小约为索引文本大小的 20-30%。 强大,准确,高效的搜索算法: 排名搜索:首先返回最佳结果。 许多强大的查询类型:短语查询,通配符查询,邻近查询,范围查询等。...它们有什么不同?你应该使用哪一个? ? img 历史比较 Apache Solr 是一个成熟的项目,拥有庞大而活跃的开发和用户社区,以及 Apache 品牌。...img 了解更多:http://solr-vs-elasticsearch.com/ 综合比较 另外,我们再从以下几个方面来分析下: ①近几年的流行趋势 我们查看一下这两种产品的 Google 搜索趋势...Solr 贡献者和提交者来自许多不同的组织,而 Elasticsearch 提交者来自单个公司。 ④成熟度 Solr 更成熟,但 ES 增长迅速,我认为它稳定。 ⑤文档 Solr 在这里得分很高。...对于 95% 的用例,任何一种选择在性能方面都会很好,剩下的 5% 需要用它们的特定数据和特定的访问模式来测试这两种解决方案。

    1.3K10

    为什么我使用 GraphQL 而放弃 REST API?

    至此,我再也无法回过头来享受使用 REST 的工作了。 REST 有什么问题吗? 每个 REST API 都是独特的 公平地说,REST 甚至不是一个标准。...有针对不同平台的实现,也有许多可用的开发工具,其中最著名的是 GraphiQL,它捆绑了一个很好的、具有自动完成功能的 API 浏览器,以及一个文档浏览器,可以浏览从 GraphQL 模式自动生成的文档...请注意,allTodos字段的offset参数是缺失的。作为可选项,它的缺失意味着它有null值。如果服务器提供这种模式,文档中可能会声明,null偏移量意味着默认情况下应该返回第一页。...如果你使用 PostgreSQL 作为后端数据库,PostGraphile 能够扫描 SQL 模式并自动生成一个带有实现的 GraphQL 模式。...你可以将所有常见的 CRUD 操作暴露为所有表的查询和修改。它可能看起来像 ORM,但它不是:你可以完全控制如何设计数据库模式,以及使用什么索引。

    3K30

    API架构风格对比:SOAP vs REST vs GraphQL vs RPC

    译自:Comparing API Architectural Styles: SOAP vs REST vs GraphQL vs RPC 两个不同的应用需要一个中间程序才能互通,开发者通常会使用应用程序接口...为了在扩容时快速集成应用,实际的API会使用协议或规范来定义消息传递的语义和语法。这些规范构成了API架构。 过去几年曾出现了几种不同的API架构风格,每种风格都有其特定的标准数据交互模式。...gRPC背后使用的是HTTP 2,因此能够优化网络层,每天可以在不同的服务间传送大量消息。但如果不关心高性能网络,转而期望团队间能够使用稳定的API来发布不同的微服务,那么可以选择使用REST。...SOAP API的逻辑是用Web服务描述语言(WSDL)编写的,该API描述语言定义了后端并描述了可执行的流程。它允许使用不同的编程语言和IDEs快速配置通信。 SOAP同时支持有状态和无状态消息。...在到达后端应用后,会有一个GraphQL操作,负责使用前端应用的数据来解析整个模式。在给服务端发送包含大量查询的请求之后,API会返回一个JSON响应,内容正对应请求的资源。 ?

    3.5K11

    ES 最佳实践配置

    Elasticsearch 性能优化 ---- Elasticsearch 是当前流行的企业级搜索引擎,设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。...因为 Lucene 使用的许多数据结构是基于磁盘的格式,Elasticsearch 利用操作系统缓存能产生很大效果。...,供 lucene 使用,提供快速的基于文档的聚类、排序性能。...,就是将内存中 segment 数据刷新到磁盘中,此时我们才能将数据搜索出来,所以这就是为什么 Elasticsearch 提供的是近实时搜索功能,而不是实时搜索功能。...尽量减少不需要的字段 如果 Elasticsearch 用于业务搜索服务,一些不需要用于搜索的字段最好不存到 ES 中,这样即节省空间,同时在相同的数据量下,也能提高搜索性能。

    5.8K30

    为什么GraphQL是API的未来

    在过去几年中,GraphQL 在越来越受到开发者的欢迎。许多公司已经开始采用这种技术来构建他们的API。...如上所述,这些问题是: 表现不佳 端点过多 过度获取或欠缺数据 每当我们要增加或删除某些内容时,需要开发另一个版本 API 难以理解 考虑到许多概念,Facebook 的开发人员开使用了一种更好的方法来设计...GraphQL仅需要一个端点 正如我上面所说,“单端点”方法使你的 API 能够自我描述,你不再需要再去构建文档,因为你的程序员已经知道应该如何使用。他们只需查看代码即可了解API。...还记得我们最初讨论的性能问题吗?不会再像那样了,因为 GraphQL 提高了 API 的性能,特别是在网络连接速度较慢的情况下。 ?...GraphQL 使得开发 API 变得容易并保持一致 很多人认为 GraphQL 非常复杂,因为它涉及模式和单个端点。但是你一旦开始用它开发 API,会发现它比你想象的要容易得多。

    1.8K30

    【黄啊码】什么是ElasticSearch?它会替代MySQL成为主流吗?如何优化?TP5如何接入ElasticSearch?

    什么是ElasticSearch? Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析 引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。...它可以帮助你快速搜索和分析海量数据,并提供了丰富的查询语言和可视化工具。Elasticsearch 也支持 ACID 事务,但这并不是它的主要功能。...在这种情况下,你可以将数据存储在 MySQL 中,并使用 Elasticsearch 对数据进行搜索和分析。...例如,可以使用 MySQL 存储和管理结构化数据,并使用 Elasticsearch 对数据进行搜索和分析。...这种情况,要么提高服务器集群的资源,要么根据业务规则,减少数据收集速度,比如只收集 Warn、Error 级别以上的日志。 优化硬件、 优化硬件设备一直是最快速有效的手段。

    52810

    【译】如何在 Node.js 中创建安全的 GraphQL API

    尽管本文应该以一个真实简单的场景来演示说明如何构建和使用 GraphQL APIs,但我们不会对 GraphQL 进行详细的介绍。...所以当两者通过 API 的形式来进行通信时,其他项目也可以使用同样的方式来工作。 如果你在一个大团队中工作,可以将它拆分成前端和后端两个团队,这样他们就可以使用相同的技术栈来工作从而提高效率。...如今,有大量的文章试图证明为什么一个比另一个好,或者你应该使用 REST 而不是 GraphQL。此外,有很多方法在内部使用 GraphQL,并仍然用 REST 来维护你的 API。...这篇文章更多的是一个实用指南,而不是对 GraphQL 和 REST 进行主观比较。如果你想了解这两者的详细区别,我建议你可以看看我的另一篇文章: GraphQL vs....REST - A GraphQL Tutorial。 为什么使用 Node.js? GraphQL 有几种不同的库可供我们实用。

    3.3K20

    全文搜索引擎选ElasticSearch还是Solr?

    索引大小约为索引文本大小的 20-30%。 强大,准确,高效的搜索算法: 排名搜索:首先返回最佳结果。 许多强大的查询类型:短语查询,通配符查询,邻近查询,范围查询等。...它们有什么不同?你应该使用哪一个? ? 历史比较 Apache Solr 是一个成熟的项目,拥有庞大而活跃的开发和用户社区,以及 Apache 品牌。...了解更多:http://solr-vs-elasticsearch.com/ 综合比较 另外,我们再从以下几个方面来分析下: ①近几年的流行趋势 我们查看一下这两种产品的 Google 搜索趋势。...Solr 贡献者和提交者来自许多不同的组织,而 Elasticsearch 提交者来自单个公司。 ④成熟度 Solr 更成熟,但 ES 增长迅速,我认为它稳定。 ⑤文档 Solr 在这里得分很高。...对于 95% 的用例,任何一种选择在性能方面都会很好,剩下的 5% 需要用它们的特定数据和特定的访问模式来测试这两种解决方案。

    1.1K10

    全文搜索引擎选 ElasticSearch 还是 Solr?

    它们有什么不同?你应该使用哪一个? ? 历史比较 Apache Solr 是一个成熟的项目,拥有庞大而活跃的开发和用户社区,以及 Apache 品牌。...了解更多:http://solr-vs-elasticsearch.com/ 综合比较 另外,我们再从以下几个方面来分析下: ①近几年的流行趋势 我们查看一下这两种产品的 Google 搜索趋势。...Solr 贡献者和提交者来自许多不同的组织,而 Elasticsearch 提交者来自单个公司。 ④成熟度 Solr 更成熟,但 ES 增长迅速,我认为它稳定。 ⑤文档 Solr 在这里得分很高。...11、在性能方面,它们大致相同。我说“大致”,因为没有人做过全面和无偏见的基准测试。...对于 95% 的用例,任何一种选择在性能方面都会很好,剩下的 5% 需要用它们的特定数据和特定的访问模式来测试这两种解决方案。

    1.2K20

    4种主流的API架构风格对比

    为了快速、大规模地集成不同的应用程序,API 使用协议或规范来定义那些通过网络传输的消息的语义和信息。这些规范构成了 API 的体系结构。 在过去,人们已经发布了多种不同的 API 架构风格。...(不同时间的 API 架构风格,图源:Rob Crowley) 今天,许多 API 的使用者将 REST 称作“消亡的 REST”(REST in peace),并且为 GraphQL 感到欢欣鼓舞。...该 API 描述语言定义了端点并描述了可以执行的所有过程。这使得不同的编程语言和 IDE 能够快速建立通信。 SOAP 支持有状态和无状态消息传递。...1 GraphQL 的工作机制 GraphQL 从构建模式(Schema)开始。模式是对于用户可以在 GraphQL API 中进行的所有查询及其返回的所有类型的描述。...2 GraphQL 的优势 具有类型的模式:GraphQL 提前公开了它能做什么,从而提高了其可发现性。通过将客户端指向 GraphQL API,我们可以发现什么查询语句是可用的。

    2.8K30

    【技术选型】Elasticsearch vs. Solr-选择您的开源搜索引擎

    我们为什么在这里?我存在的目的是什么?我应该运动还是休息并节省能量?早起上班或晚起并整夜工作?我应该将炸薯条和番茄酱或蛋黄酱一起吃吗? 这些都是古老的问题,可能有也可能没有答案。...其中一些是非常困难或非常主观的。但是,让我付出一些努力来尝试回答其中之一:我应该使用Elasticsearch还是Solr? 这是场景。...您的组织正在寻求实现您的第一个搜索引擎,并切换到另一个搜索引擎-呼吁所有Google Search Appliance(GSA)用户寻找替代品!-或尝试通过开源来省钱。...但在下面,它们都使用Lucene,这意味着两者都建立在“巨人的肩膀”上。 对于那些想知道为什么我将Lucene视为“巨人”的人来说,它是许多搜索引擎支持下的实际信息检索软件库。...性能 在性能方面,根据我从许多开发人员那里获得的经验,我们可以说这两个引擎都表现出色。因此,对于大多数用例而言,无论是内部还是外部搜索应用程序,只要开发人员正确设计和配置它们,性能都不会成为问题。

    1.2K30

    全文搜索引擎 Elasticsearch 还是 Solr?

    索引大小约为索引文本大小的 20-30%。 强大,准确,高效的搜索算法: 排名搜索:首先返回最佳结果。 许多强大的查询类型:短语查询,通配符查询,邻近查询,范围查询等。...它们有什么不同?你应该使用哪一个? ? 历史比较 Apache Solr 是一个成熟的项目,拥有庞大而活跃的开发和用户社区,以及 Apache 品牌。...了解更多:http://solr-vs-elasticsearch.com/ 综合比较 另外,我们再从以下几个方面来分析下: ①近几年的流行趋势 我们查看一下这两种产品的 Google 搜索趋势。...Solr 贡献者和提交者来自许多不同的组织,而 Elasticsearch 提交者来自单个公司。 ④成熟度 Solr 更成熟,但 ES 增长迅速,我认为它稳定。 ⑤文档 Solr 在这里得分很高。...对于 95% 的用例,任何一种选择在性能方面都会很好,剩下的 5% 需要用它们的特定数据和特定的访问模式来测试这两种解决方案。

    1.4K20

    全文搜索,ElasticSearch和Solr哪个更好用?

    索引大小约为索引文本大小的 20-30%。 强大,准确,高效的搜索算法: 排名搜索:首先返回最佳结果。 许多强大的查询类型:短语查询,通配符查询,邻近查询,范围查询等。...它们有什么不同?你应该使用哪一个? 历史比较 Apache Solr 是一个成熟的项目,拥有庞大而活跃的开发和用户社区,以及 Apache 品牌。...Solr 和 Elasticsearch 都在快速发展,所以,话不多说,先来看下它们的差异清单: 了解更多:http://solr-vs-elasticsearch.com/ 综合比较 另外,我们再从以下几个方面来分析下...Solr 贡献者和提交者来自许多不同的组织,而 Elasticsearch 提交者来自单个公司。 ④成熟度 Solr 更成熟,但 ES 增长迅速,我认为它稳定。 ⑤文档 Solr 在这里得分很高。...对于 95% 的用例,任何一种选择在性能方面都会很好,剩下的 5% 需要用它们的特定数据和特定的访问模式来测试这两种解决方案。

    2.5K20

    数据流动方式迭代:Netflix Studio 的 Data Mesh 实践

    这种规模是前所未有的,并且带来了许多有趣的挑战;其中一个挑战是如何跨多个阶段和系统提供 Studio 数据的可视化,以促进运营的卓越性并增强决策能力。...借助可靠的近实时数据,Studio 团队能够更好地跟踪和应对不断变化的制作节奏,并使用最新的信息来提高全球业务运营的效率。...比如,可以配置一个 GraphQL 丰富处理器来查询 GraphQL 服务,以丰富不同管道中的数据;Iceberg sink 处理器可以多次初始化,以将数据写入到具有不同模式的不同数据库 / 表中。...选择退出(Opt out):只有一部分字段(使用 “Is Consumed” 复选框来定义)会在处理器中传播并使用。其余字段的上游变更不会影响到该处理器。  ...这一策略提高了 Studio 技术解决方案团队的性能和稳定性。团队现在可以轻松地创建、查看、变更、监控及发现跟踪器了。

    1.4K20
    领券