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

标准化API设计流程!

API vs GraphQL 当涉及到API设计时,REST和GraphQL都有自己的优点和缺点。...RPC(Remote Procedure Call)被称为“远程”,因为它在微服务架构下,当服务部署到不同的服务器时,可以实现远程服务之间的通信。从用户的角度来看,它就像一个本地函数调用。...异步日志记录首先将日志发送到无锁缓冲区,然后立即返回。日志将定期刷新到磁盘。这大大降低了I/O开销。 缓存 我们可以将频繁访问的数据存储到缓存中。客户端可以先查询该高速缓存,而不是直接访问数据库。...连接池 在访问资源时,我们经常需要从数据库中加载数据。打开正在关闭的数据库连接会增加大量开销。所以我们应该通过一个开放连接池连接到数据库。连接池负责管理连接生命周期。 如何设计安全有效的API?...❝下图以购物车为例展示了典型的API设计 请注意,API设计不仅仅是URL路径设计。大多数时候,我们需要选择适当的资源名称、标识符和路径模式。

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

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

    因此,开发人员经常需要搭建桥梁——也就是应用程序编程接口(API),来允许一个系统访问另一个系统的信息或功能。...(四种 API 架构风格) RPC:调用另一个系统的函数 远程过程调用是一种允许在不同上下文中远程执行函数的规范。RPC 扩展了本地过程调用的概念,并将其放在 HTTP API 的上下文中。...在 RPC 中,无法对 API 进行检验总结,或者发送请求来开始理解根据需求应该调用哪个函数。 函数爆炸性增长。创建新函数非常容易。...多种格式支持:REST 拥有支持多种格式用于存储和交换数据的能力,这是它如今成为搭建公共 API 的主要选择的原因之一。...在查询语句到达后端应用程序时,GraphQL 操作将根据整个模式进行解释,并向前端应用程序返回解析到的数据。

    3K30

    API 架构风格抉择:SOAP、REST、GraphQL 和 RPC 的特性、优势与局限

    四种主要 API 样式比较 一、远程过程调用(RPC) 远程过程调用 (RPC)是一种允许在不同上下文中远程执行函数的规范。...RPC 的工作原理 客户端调用远程过程,将参数和附加信息序列化为消息,然后将消息发送到服务器。服务器收到消息后,会反序列化其内容,执行请求的操作,并将结果返回给客户端。...在 RPC 中,无法自检 API 或发送请求,也无法根据请求了解要调用的函数。 函数爆炸。创建新函数太容易了。因此,我们不是编辑现有函数,而是创建新函数,结果却得到了一大堆难以理解的重叠函数。...能够支持多种数据存储和交换格式,是 REST 目前成为构建公共 API 的主流选择的原因之一。 REST 的缺点 没有单一的 REST 结构。构建 REST API 没有绝对正确的方法。...到达后端应用程序后,GraphQL 操作将根据整个模式进行解释,并解析为前端应用程序的数据。向服务器发送一个大规模查询后,API 将返回一个 JSON 响应,其数据结构与我们请求的数据完全一致。

    1.2K10

    API 架构选哪种?SOAP、REST、GraphQL 与 RPC 全方位对比分析

    因此,开发人员经常需要搭建桥梁——也就是应用程序编程接口(API),来允许一个系统访问另一个系统的信息或功能。...四种 API 架构风格 1RPC:调用另一个系统的函数 远程过程调用是一种允许在不同上下文中远程执行函数的规范。RPC 扩展了本地过程调用的概念,并将其放在 HTTP API 的上下文中。...在 RPC 中,无法对 API 进行检验总结,或者发送请求来开始理解根据需求应该调用哪个函数。 函数爆炸性增长。创建新函数非常容易。...多种格式支持:REST 拥有支持多种格式用于存储和交换数据的能力,这是它如今成为搭建公共 API 的主要选择的原因之一。...在查询语句到达后端应用程序时,GraphQL 操作将根据整个模式进行解释,并向前端应用程序返回解析到的数据。

    35520

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

    因此,开发人员经常需要搭建桥梁——也就是应用程序编程接口(API),来允许一个系统访问另一个系统的信息或功能。...四种 API 架构风格 1RPC:调用另一个系统的函数 远程过程调用是一种允许在不同上下文中远程执行函数的规范。RPC 扩展了本地过程调用的概念,并将其放在 HTTP API 的上下文中。...在 RPC 中,无法对 API 进行检验总结,或者发送请求来开始理解根据需求应该调用哪个函数。 函数爆炸性增长。创建新函数非常容易。...多种格式支持:REST 拥有支持多种格式用于存储和交换数据的能力,这是它如今成为搭建公共 API 的主要选择的原因之一。...在查询语句到达后端应用程序时,GraphQL 操作将根据整个模式进行解释,并向前端应用程序返回解析到的数据。

    3K20

    5个REST API安全准则

    当开发REST API时,从一开始就必须注意安全方面。 REST是通过URL路径元素表达系统中特定实体的手段。REST不是一个架构,而是一种在Web上构建服务的架构风格。...(2)存储中的数据 在正确处理存储敏感或管制数据时,建议实现最佳实践。 有关详细信息,请参阅OWASP 2010年前10 - A7不安全加密存储。...当设计REST API时,不要只使用200成功或404错误。 以下是每个REST API状态返回代码要考虑的一些指南。 正确的错误处理可以帮助验证传入的请求,并更好地识别潜在的安全风险。...概要 在这篇文章中,介绍了5个RESTful API安全问题和如何解决这些问题的指南。遵循这些准则将导致更安全和高质量的REST API服务和更多的开发人员友好的REST API。...在设计和构建REST API时,您必须注意安全方面。

    5.1K10

    Salesforce Integration 概览(五) Remote Call-In(远程操作 外部->salesforce)

    本篇博客介绍 Remote Call-In 集成模式,一言以蔽之:此种模式用于存储在Lightning Platform中的数据由远程系统创建、检索、更新或删除 先说一下针对 salesforce的...请求的所有响应主体和HTTP状态都在单个响应主体中返回。整个请求都算作一个符合API限制的调用。...Apex REST服务与SOAP不同,它不需要客户机使用服务定义/约定(WSDL)并生成客户机存根。远程系统只需要能够形成HTTP请求并处理返回的结果(XML或JSON)。...然后,远程系统使用适当的动词生成REST调用(HTTP请求),并处理返回的结果(支持JSON和XML数据格式)。...因为salesforce在国内没有服务器,并且访问很慢,基于SOAP / REST 标准的API都是同步操作,很容易经常碰到超时现象,除此以外,我们还要考虑DML的程序问题或者 validation rule

    3.9K20

    GraphQL 初体验,Node.js 构建 GraphQL API 指南

    考虑一个使用 API 连接到远程数据库的 Sass 应用程序。你想要呈现用户的个人资料页面,你可能需要进行一次 API GET 调用,以获取有关用户的信息,例如用户名或电子邮件。...如果你不确定应用程序的需求以及将来如何存储数据,则 GraphQL 在这里也很有用。要修改查询,你只需要添加所需字段的名称,这极大简化了随着时间推移而发展你的应用程序的过程。...另一部分涉及实际获取数据,这是通过使用解析器完成的,解析器是一个返回字段基础值的函数。 让我们看一下如何在 Node.js 中实现解析器。...我们的目的是围绕着解析器如何与模式一起操作来巩固概念,所以我们不会围绕着如何设置数据存储来做太详细的介绍。...我们可以想象一下这样的场景:经过认证的用户可以执行查询来获取自己的地址信息,但应该无法获取其他用户的地址。 为了解决这个问题,我们需要修改解析器函数。

    9.3K40

    微服务架构究竟应该怎么进行服务通信?

    这些服务必须经常协作才能处理各种外部请求。因为服务实例通常是在多台机器上运行的进程,所以它们必须使用进程间通信进行交互。 选择合适的通信机制是我们在进行微服务架构设计中很重要的架构决策。...同步模式主流的有REST和gRPC这两种通信模式。 使用REST REST是一种使用HTTP协议的进程间通信机制,如今的开发者也非常喜欢使用RESTful风格来开发API。...例如,GET请求返回资源的表示形式,该资源通常采用XML文档或JSON对象的形式。POST请求创建新资源,PUT请求更新资源。...由于客户端和服务直接通信而没有代理来缓冲消息,因此它们必须在REST API调用期间都保持在线。 客户端必须知道服务实例的位置(URL)。客户端必须使用所谓的服务发现机制来定位服务实例。...消息接收方可以提取所需的字段,并跳过它无法识别的字段。因此,gRPC使API能够在保持向后兼容的同时进行变更。

    1.6K40

    .net 温故知新【12】:Asp.Net Core WebAPI 中的Rest风格

    RPC RPC(Remote Procedure Call),远程过程调用),这种RPC形式的API组织形态是类和方法的形式。...REST形式的API组织形态是资源和实体,请求的路由可以看出对资源的访问,规范统一接口自解释。 比如 https://xxxx/Student/1 用Get方法调用就是获取编号为1的学生。...如果我们严格的按照Rest风格设计接口的话,需要对技术人员有很高的要求,需要去划分不同业务不同的资源定位,而且有些业务也找不到准确的谓词去定义,响应状态码有限无法表达准确的意思,或者是时间上来不及等等原因...因此我们在实际设计中可能会进行Rest裁剪,我们既使用RPC的返回结果,同时多用准确的状态码,不用什么都返回200。...IActionResult或者ActionResult但是类型不确定这样swagger文档就不会解析出返回值,所以我们用ActionResult泛型。

    1.1K40

    分布式服务的调用

    在DNS负载均衡中,当客户端发送一个请求时,首先会向DNS服务器发送一个域名解析请求。DNS服务器会返回一个域名解析的结果,通常是一个服务器的IP地址。...由于DNS解析结果的缓存,新的服务器无法立即对所有的客户端生效。而且,DNS的选择策略通常是静态的,不会根据服务器的实际负载进行动态调整。...限流:API网关可以根据配置设置请求的速率限制,以防止过载和拒绝服务攻击。 在AWS平台上,API网关提供了HTTP API和REST API两种选项。...API网关的技术原理 API网关的技术原理主要包括以下几个方面: 接收和解析请求:API网关接收来自客户端的请求,并解析请求中的属性,如路径、方法、请求头等。...协议:注册中心通常使用特定的协议来传输和存储服务信息。常见的协议有 HTTP/REST、gRPC、Thrift 等。这些协议可以实现跨语言、跨平台的数据通信。

    90970

    Go 语言学习指南:变量、循环、函数、数据类型、Web 框架等全面解析

    发出错误的 Go 语言中最常用的技术是将错误作为返回的最后一个值。 Panic 通常意味着发生了意外错误。主要用于在不应该在正常操作期间发生的错误或我们无法优雅处理的错误时快速失败。...使用API客户端是加快开发过程的好方法 REST REST(表述性状态转移)API(应用程序编程接口) Channels 通道是连接并发Goroutines的管道。...API Clients API客户端是一组从计算机上的应用程序操作的工)用于处理网站时传递用户功能。使用HTTP请求与REST API进行通信,以便用户可以导航到URL网站。...这些URL可以返回存储为API的一部分的特定信息。 Heimdall Heimdall 是一个HTTP客户端,可以帮助您的应用程序大规模进行请求。...使用协议缓冲区的一些优势包括: 紧凑的数据存储 快速解析 在许多编程语言中可用 通过自动生成的类进行优化功能 gRPC Go gRPC(gRPC Remote Procedure Call)的Go语言实现

    92310

    REST vs RPC - RESTful究竟是什么?

    因为误解REST而开发的POX(Plain Old XML)网络服务,有很多 web api实现并没有完全了解REST框架,从而没有真正用到RESTful API的简单性和禅性(相反认为RESTful更加的麻烦...因此我们不需要维护一个经常被修改的面向用户的开发项目,并从中享受RESTful带来的好处 请考虑以餐馆中的订单场景进行建模,设计HTTP API -RPC API以“动词”的形式思考,将餐厅功能公开为接受参数的函数调用...返回的状态码是手工编码的,也是你定义的一部分。 -相反,REST API将问题域中的各种实体建模为资源,并使用HTTP谓词来表示针对这些资源的事务 -  POST创建,PUT更新和GET读取。...RPC不说,文中的例子说的很清楚,说下SOAP 现在可能没啥人了解过SOAP这时代之泪,简单的说就是HTTP+XML,通过特定标签获取数据,那么只要数据结构有改变,前端的改动就会很大,甚至无法正常显示...当然可能就我有这红字理解问题,,, 四 RPC说下,Remote Procedure Call,远程过程调用,想想你连远程MySQL吧。

    1.7K50

    Rest Notes-架构上的教训(论文部分完结)

    摘要: 从现代Web架构和由REST识别出的问题中,可以总结出很多通用的架构上的教训 正文: 架构上的教训 基于网络的API的优势 将现代Web与其他中间件相区分的是它使用HTTP作为一个基于网络的API...CERN libwww提供了一个基于库的API来建造可互操作的Web组件 HTTP不是RPC 人们常常错误地将HTTP称为一种远程调用(RPC)机制,仅仅是因为它也包括了请求和响应。...RPC是调用远程机器上的一个过程,在RPC协议中,调用方识别出过程并且传递一组固定的参数,然后等待在使用相同接口返回的一个消息中提供的回答。...应用的开发者经常违背的就是应用状态和无状态交互架构约束。...的失败之处在于,用户代理无法管理或解释它们所提供的间接应用状态。

    67360

    API 接口渗透测试

    1 API 接口介绍 1.1 RPC(远程过程调用) 远程过程调用(英语:Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。...尽管W3C的定义涵盖诸多相异且无法介分的系统,不过通常我们指有关于主从式架构(Client-server)之间根据 SOAP 协议进行传递 XML 格式消息。...1.3 RESTful API REST,全称是 Resource Representational State Transfer,通俗来讲就是,资源在网络中以某种表现形式进行状态转移。...RESTful API 就是符合 REST 风格的 API,传递数据也是2种形式: XML,少见 json,常见,现在 Web 应用基本使用这种形式的 API。...视图:管理作为位图展示到屏幕上的图形和文字输出; 控制器:翻译用户的输入并依照用户的输入操作模型和视图; 模型:管理应用的行为和数据,响应数据请求(经常来自视图)和更新状态的指令(经常来自控制器); ?

    3.4K30

    GraphQL最突出的架构优势是什么?

    去年(2019 年),我意识到 API 在技术栈中的深度已经超出了我们的想象。API 的触角伸到了前端框架的数据存储,也伸到了后端服务的合约层面。 这听起来可能有点虚幻,但它的确就是那样。...基本的全栈 Apollo Client+Server 应用程序栈 4数据图让远程状态更接近客户端本地状态 所有前端框架都需要解决的三个挑战分别是数据存储、更改检测和数据流。...对于突变,解析器可以简单地将控制权传递给一个应用层用例。 将用例作为应用程序的重心后,从 REST 切换到 GraphQL(或同时支持两者)变得轻而易举。...如果你认为自省(introspection)是全面的文档,那么可以说 GraphQL 是自文档化的,并且你的 API 文档无法失去同步。...因为这种情况经常发生,并且因为 REST 如此严格,所以每当我们需要调整的时候都必须依赖后端团队来更改 REST API。

    3K20
    领券