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

Salesforce 构建可扩展 API 旅程

本文从执行环境、API 技术、安全性等角度出发,介绍了如何构建高效、可扩展 API。...每个 GraphQL 服务会定义一组类型。GraphQL 模式中最基本组件是对象类型,它代表了一种我们可以从服务获取对象。...确保 API 安全性 Salesforce,安全性是首要任务。我们 API 仅供注册用户访问,而且他们只能访问有权限数据。...除了认证和授权,设计 API 还应考虑速率限制、数据脱敏(data masking)和载荷扫描。 总    结 我们已经展示了如何构建一个可扩展、高效、安全 API。...在这个过程,我们使用应用容器进行扩展使用 GraphQL 和嵌入式 Jetty 确保高效和轻量级,并优先考虑了 API 安全性。 今日好文推荐 “不搞职级、人人平等” 25 年后行不通了?

99710

API NEWS | Jetpack WordPress插件存在API漏洞

根据这篇文章,最近研究表明,97%企业领导者将API使用归类为对未来增长至关重要,另一研究表明,使用API平均数量比去年增长了82%。...API授予执行其业务目标所需最低权限。代码错误:正如读者所知,许多API漏洞是由于代码库缺陷造成,导致BOLA、BFLA和身份验证中断等漏洞。...强化身份验证:为API访问实施强大身份验证机制,多因素身份验证、OAuth等,防止未经授权访问和恶意活动。...这可以使用Burp Suite手动完成,也可以通过将通用查询发送到常见GrahpQL API端点来完成,如下所示:/graphql/api/api/graphql/graphql/api/graphql...Burp Suite还提供了一个扩展,可以自动执行大部分发现过程,这是流行扩展。InQL是一个Burp Suite扩展,可帮助您安全地审核GraphQL API

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

使用 GraphQL 和 Ballerina 操作多个数据源

GraphQL 既可以视为一种 API 查询语言,也可以视为一种服务器端运行时,用于执行由用户定义查询。...REST 和 GraphQL 可以认为是解决同一问题(通过 Web 服务访问数据)两种不同方法。但是,随着客户端对 API 访问需求发生了快速变化,REST API 已经变得太不灵活了。...但在使用 GraphQL ,你可以使用查询语法定义所需信息结构,然后通过单个 API 请求就可以获取所需信息。...使用记录类型作为对象有局限性,因此,在这个示例,我们使用服务类型来表示“Book”对象。 在这个服务,“BookDetails”是一个 final 只读字段,初始化后不能赋值。...你可以初始化客户端提供配置信息,不过本例使用了 Ballerina 配置功能来提供配置信息。用户可以根据不同环境通过外部输入来改变系统行为,而且敏感数据(密码)不会通过代码暴露出来。

2.4K20

GraphQL 是一个陷阱?

一个通用 GraphQL API 与大多数人认为最佳实践背道而驰。事实上,GraphQL 规范一直拒绝通用 / 类数据库功能(过滤、排序等)提议。...GraphQL API 公开内容就是您选择公开内容,而无需公开内部细节;重点是 GraphQL 连接是人为设计,另外在 GraphQL 避免不可预知对象访问,与典型基于资源 API...构建 GraphQL API ,有很多方法可以进行改善,比如正确设置批处理和缓存数据加载;如果您将对象类型视为 “资源”或“端点”安全性与其它 API 都非常相似。...【推文 4 】 SQL 数据库,典型 GraphQL 需要查询嵌套查询和无限连接,这些都是众所周知可靠性、性能、代码扩展性和理解性问题,是所有通用图形 API 问题一种体现。...如果需要构建预解析器或使用 GraphQL-to-SQL 自动生成,才会用到查询嵌套查询和无限连接,只是实际不常见。 GraphQL 并不是一个通用 Graph API

98410

MassCMS With APIJSON最佳实践

安全性APIJSON支持数据权限控制和访问控制,可以对返回数据进行过滤和限制。GraphQL可以通过定义查询和变更类型来精确控制数据访问和修改权限。...一次请求可以获取多个数据源数据,但这可能导致性能问题。可以通过缓存或批量查询来改善性能。生态系统和扩展提供了一些基本功能,并且可以通过扩展来满足特定需求。...GraphQL具备一定灵活性,但是对于返回数据结构定制性稍逊一筹。安全性APIJSON通过自动化数据权限控制机制,可以根据用户角色和权限来限制接口访问。...GraphQL处理大量数据可能存在性能瓶颈,因为它通过单一请求来获取多个数据源数据,可能导致数据获取过程变得复杂。...它简化了前后端数据交互过程,提供了丰富查询能力和安全数据访问方式,同时还具备高性能数据返回能力。实际项目中使用APIJSON,我们开发效率得到了极大提升,同时也提升了系统性能和安全性

42420

造轮子之集成GraphQL

每个请求通常返回一个固定数据结构,包含在响应主体GraphQL:客户端可以使用GraphQL查询语言来精确指定需要数据。...GraphQLGraphQL没有显式版本控制机制,而是通过向现有的类型和字段添加新字段来扩展现有的API。这样可以避免创建多个不同版本API。...GraphQL:客户端可以使用GraphQL强类型系统和自动生成代码工具来进行开发。客户端可以根据GraphQL模式自动生成类型定义和查询代码,提供了更好开发体验和类型安全性。...在这种情况下,使用GraphQL就可以有较好体验。 那么,我们现有写好Service,如何快速集成GraphQL又无需复杂编码工作呢。这就是我们接下来要实现了。...启动程序,访问https://localhost:7080/graphql/ 可以看到集成界面。可以使用这个界面操作测试我们graphql查询

21310

2018年微服务5个发展趋势

目前,FaaS不适合长时间调用,大量数据加载到内存以及性能一致进程。当开发人员使用FaaS处理后台作业和临时事件,我们相信随着存储层加速和平台性能提高,用例将随着时间推移而扩展。...边缘计算对于物联网和AR / VR使用情况尤其强大。 3. 安全需求正在发生变化。 由于内核访问,打包在容器应用程序默认情况下更安全。虚拟环境,唯一可见点是虚拟设备驱动程序。...通通过类型和字段之间定义资源之间关系(而不是像REST一样端点),GraphQL可以遵循属性之间引用,因此服务可以使用单个查询从多个资源接收数据。...另外,REST api要求为一个请求加载多个url,增加网络跳数,减慢查询速度。通过减少往返,GraphQL减少了每个数据请求所需资源数量。返回数据通常被格式化为JSON。...因为查询更简单,所以整个过程更稳定。该规范最著名是支持外部api,但我们发现它也用于内部api

1.4K20

四种主流API风格介绍与对比

扩展性:gRPC 支持多种环境运行,包括云端、数据中心和本地计算机。 安全性:gRPC 支持 SSL/TLS 加密,能够保护数据传输安全性。...调试困难:当RPC API调用出现问题,调试可能会变得非常困难,因为错误信息可能分布多个组件和服务。...五、SOAP API SOAP API 简介 SOAP(Simple Object Access Protocol,简单对象访问协议)是一种基于 XML 通信协议,它定义了用于 Web 上应用程序之间通信标准格式...服务器返回查找结果,并在 SOAP 响应消息返回 Amazon 商品信息。开发者可以按照 SOAP 响应消息结构,解析并处理 Amazon 商品信息。...所以 API 技术选择不建议考虑 SOAP API,因为使用 SOAP 开销非常大,特别是资源有限系统上。

45650

安息吧 REST APIGraphQL 长存

REST API ,没有客户端请求语言。客户端无法控制服务器返回数据。没有任何语言可以这样做。更确切地说,可用于客户端语言非常有限。...UI 使用了我们假想 JSON 数据对象所有“键”。 现在我们来看看如何使用 RESTful API 请求这些数据。...现在,将 GraphQL 查询与我们为数据定义声明式 React UI 进行比较。GraphQL 查询所有内容都在 UI 中被用到,UI 所有内容都会显示 GraphQL 查询。...客户端可以要求服务器只执行使用查询唯一标识符预先批准查询。据说 Facebook 采用就是这种方法。 认证和授权是使用 GraphQL 需要考虑其他问题。...GraphQL 查询字段设计为独立功能,并且使用数据库数据解析这些字段可能会导致对已解析字段产生新数据库请求。

2.7K30

与我一起学习微服务架构设计模式8—外部API模式

外部API设计难题 Web应用在防火墙内部运行,它们通过高带宽、低延迟局域网访问服务。其他客户端防火墙之外运行,通过较低带宽、较高延迟互联网或移动网路访问。...使用GraphQL实现API Gateway 实现支持多种客户端REST APIAPI Gateway非常耗时,你可能需要考虑使用基于图形API框架,GraphQL。...执行GraphQL 使用GraphQL主要好处是它查询语言为客户端提供了对返回数据令人难以置信控制。客户端通过向服务器发出包含查询文档请求来执行查询。...简单情况下,查询文档包含查询名称,参数值及要返回结果对象字段。 把模式连接到数据源 当GraphQL服务器执行查询,必须从一个或多个数据存储检索所请求数据。...GraphQL通过递归调用Query文档中指定字段解析器函数来执行查询。首先,它执行查询解析器,然后递归调用结果对象层次结构字段解析器。

1.3K30

防止你GraphQL API恶意查询

在这篇文章,他描述了他们是如何在攻击中保护GraphQL API使用GraphQL,你可以随时查询想要内容。 这对于使用API来说是惊人,但也具有复杂安全隐患。 ...例如,SpectrumGraphQL API,我们有这样关系: type Thread {   messages(first: Int, after: String): [Message] }...虽然在其他应用层有一些缓解措施使开始发送查询变得困难(CORS),但它们无法完全防止发生。 大小限制 我们考虑第一种天真的方法是通过原始字节来限制传入查询大小。 ...查询成本分析 不幸是,正确条件下仍然有可能压倒服务器:有一些特定于应用程序查询既不太深也不要求太多对象,但仍然非常耗时。 ...拒绝! 总结 总而言之,我建议使用深度和数量限制作为任何GraphQL API最低保护 – 它们很容易实现,并且会提供足够安全性。 根据您特定安全要求和架构,您可能还需要做查询成本分析。

1.8K10

API协议设计10种技术

RESTful API,每个资源都可以通过唯一URL进行标识和访问。客户端可以通过发送HTTP请求来执行各种操作,获取资源、创建新资源、更新现有资源或删除资源。...另外,处理许多请求和有限带宽,最好使用 REST。在这种情况下,可以使用其缓存支持来提高性能。 2. GraphQL 是2015年引入一种数据查询语言。...对于 API 而言,GraphQL 视为一种新思路。GraphQL 既是一种用于 API 查询语言也是一个满足你数据查询运行时环境。...即便如此,确定是否要使用 GraphQL 技术,仍需要做认真的分析,且不可为了追新而采用 GraphQLGraphQL查询具有多条记录数据库极佳选择。...SOAP消息传输可以使用安全协议,HTTPS,以确保在网络上传输机密性和完整性。此外,SOAP还可以与其他安全标准(WS-Security)结合使用,提供更高级安全性支持。 .

24510

使用Flask构建简单Web应用

定义路由('/')和对应视图函数(home),返回一个渲染模板响应。运行应用,启动调试模式。2. 使用ORM管理数据库对象关系映射(ORM)工具有助于简化数据库操作,提高代码可读性。...GraphQL APIGraphQL是一种强大API查询语言,允许客户端灵活地请求所需数据。使用Graphene等库,你可以Python轻松构建GraphQL API。...,定义推送至主分支执行测试任务。...使用Flask-Security增强应用安全性Flask-Security是Flask一个扩展,提供了用户认证、角色管理、密码重置等功能,有助于增强应用安全性。...GraphQL API使用Graphene等库构建灵活GraphQL API,提供更自由数据查询。自动化测试与持续集成: 集成自动化测试和持续集成,确保代码稳定性和质量。

40020

【RESTful】RESTful API 接口设计规范 | 示例

query-string][#author] shceme 指定低层使用协议(http,https,ftp) host 服务器IP地址或域名 port 服务器端口,默认为80 path 访问资源路径...返回结果:POST资源时候,需要返回一个资源实例;GET资源列表,需要返回一个资源数组; 资源路径 RESTful架构,每个网址代表一个资源,所以网址不能有动词,只能有名词。...一般而言,API名词应该使用复数。例如,使用users反映用户资源URI,而不是使用user。.../collections : 返回新生成资源对象 PUT/collections/identity : 返回完整资源对象 PATCH/collections/identity : 返回修改属性...当然,处理RESTful API设计思想,还有最近流行GraphQL,它是一种API查询语言,其将所见即所得思想引入,能帮助提升开发体验与应用性能。

97320

GraphQL API 新趋势:驱动数据交换未来技术

GraphQL 订阅实现实时数据 现代应用程序,实时数据变得越来越重要,而 GraphQL 订阅提供了一种支持实时更新和通信订阅,使客户端应用程序能够特定事件或数据更改发生接收通知,为处理 GraphQL...新型安全技术(查询成本分析、查询深度限制以及持久化查询)正在出现,以帮助保护 GraphQL API 免受恶意查询和潜在数据泄露。 6....部分查询结果 部分查询结果允许 GraphQL API 某些字段或操作由于错误或限制而失败返回部分数据,这种方法通过使客户端应用程序接收和处理部分数据来增强 GraphQL API 弹性,从而在面对错误时提供更良好用户体验...编译器日益普及 编译器优化 GraphQL 查询、增强 GraphQL API 性能、类型安全性和开发人员体验方面发挥着至关重要作用。...自定义指令 自定义指令提供了一种扩展 GraphQL API 功能方式,允许开发人员定义可重复使用、特定于应用程序逻辑。

23520

⚡REST 和 SOAP 协议有什么区别?

客户端使用 “资源 ”访问和操作 REST API 公开数据。资源代表不同 API 功能,并通过资源 URL 对其进行访问。可以将资源视为 API 返回数据对象。...资源是](https://petstore.swagger.io/v2/pet%E3%80%82%E8%B5%84%E6%BA%90%E6%98%AF) API 返回数据对象,可使用端点进行定位。...从 GraphQL API 请求数据比使用 REST 更高效。使用 REST ,有单独资源 URL(有时多达数百个)来暴露 API 功能。...如果你需要从两个资源收集信息,你必须向每个资源 URL 发出请求。而使用 GraphQL,所有 API 数据都可以通过一次查询请求获取。客户端使用过滤器缩小查询范围,从而从一个 API 检索数据。...这一约束对于网络服务高效运行至关重要。虽然 REST 某些方面已经取代了 SOAP 公共网络服务地位,但 SOAP 安全敏感场景企业级应用和金融服务,仍然有着很高采用率。

6000

GraphQL 入门指南

随之而来也有一些问题,使用 REST 设计构建 API ,你会遇到以下问题: 涉及很多端 于开发人员来说,学习和理解你 API 要困难得多 * 信息获取有多有少 为了解决这些问题,Facebook...GraphQL是强类型,通过它,可以执行之前验证 GraphQL 类型系统查询, 它帮助我们构建更强大 Api。...这种模式语言非常有用,因为它更直观看出 API 具有哪些类型,一看到 API 就知道怎么使用。 类型(Type) 类型是 GraphQL 最重要特性之一。类型是表示 API 外观自定义对象。...类型字段可以是任何类型,并始终返回一种数据类型, Int,Float,String,Boolean,ID,对象类型列表或自定义对象类型。...} 如上所见,使用 GraphQL 查询,还可以传递参数。本例,要查询特定用户,所以要传递其用户 ID。 但是,你可能想知道: GraphQL 如何知道从哪里获取数据?

1.9K30

最流行六种 API 架构风格(附 Node.js DEMO)

,可以浏览器访问 http://localhost:3000/graphql,打开 GraphQL Playground,可以 Playground 中进行 GraphQL 查询和操作。...查询语言可以自定义数据返回形式和内容 客户端可以精确地指定需要数据,减少了网络传输和 API 请求数量,提高了性能和效率 可扩展性 支持可扩展架构,可以轻松地添加新字段和类型,而不会破坏现有的...API 功能和数据模型 # 缺点 学习成本 相比传统 REST APIGraphQL 有更高学习成本,需要掌握新查询语言和 API 设计方法 缓存 GraphQL 灵活性和可扩展性使得缓存变得更加复杂...大型 Web 应用程序 GraphQL 扩展性和灵活性使得它适用于需要处理大量数据 Web 应用程序 Facebook、GitHub 等都在使用 GraphQL,以此来提高性能和可扩展性 微服务...,需要使用 SSL/TLS 加密协议保证数据安全性 如果没有正确配置 SSL/TLS,可能会存在数据篡改或窃取风险 跨域限制问题 由于浏览器同源策略限制,WebSocket 跨域访问可能会遇到一些问题

1.7K60

GraphQL 快速搭建服务端 API

与 RESTful 设计不同,GraphQL 一般仅暴露出一个接口供使用,而具体一个请求需要什么数据,数据怎么样组织完全由 API 使用者(客户端)来指定。...fig 1.1 实际使用,服务端返回结果会根据查询语句发生变化,比如 fig 1.1 第一次查询了 Starship registry 和 name 属性,第二次查询 crewNum 和 crew...虽然 RESTful API 里,我们可以通过路径命名笼统知道这个请求作用,但使用 GraphQL 就可以通过查询语句清晰、具体地描述这个请求输入和输出。...但这么实现完了似乎心有不甘,好像还是有一些字段在数据库表里定义了, GraphQL 对象类型 code 2.1 里重复定义了?...错误处理 当查询语句出错或部分出错GraphQL 不会将错误直接上抛造成服务器 500 错误,而是依然会返回一个 json 对象,只是在这个对象描述了发生怎样错误。

2.4K30

何为GraphQL

当你数据按层次结构或图形组织,并且前端想要访问这个层次结构或图形不同子集GraphQL最能发挥作用。 考虑一个提供NBA信息应用程序。你有球队,球员,教练,冠军,和许多与此相关信息。...allPlayers查询情况下,它可以返回一个空列表,但不能为空值。 此外,这意味着列表球员也不能为空值(因为它也有一个感叹号)。 ? 设置GraphQL服务器 ?...让我们将卡里姆添加到我们数据库。 我们可以定义GraphQL变动来执行操作,添加,更新和删除图中数据。 首先,让我们模式添加一个变动类型。...该实现简单地使用查询提供参数并向data['allPlayers']添加新对象。 它也确保我们正确地设置了球队。 最后,它返回球员。...您可以查询修改数据,并且您可以仅返回来自变动(mutation)数据。 GraphQL不会窥探你代码。 查询和突变都可以接受参数并返回数据。 它更像是语法糖,让你模式更具人性化。 ?

3.5K60
领券