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

PayPal大规模采用GraphQL的探索和实践

当我们选择 GraphQL 时,我们正在寻找一种技术来帮助我们解决以下问题: 过度获取的数据:我们的 REST(代表性状态传输)APIs 发送了客户端需要的部分响应和一些无关数据。...这是一个问题,因为我们为了获取一条信息进行了多次往返请求。GraphQL 帮助解决了这个问题,因为它允许我们在一次往返中获取所需的一切。...使客户端保持最新:我们在 REST API 中大量使用 API 版本号。任何时候我们有突破性的改变,我们都会将其发布为一个新的 API 版本。...有了 GraphQL,我们可以发送更新,客户端不再需要担心版本的更新。由于所有更新都发布到了 GraphQL 中的一个端点,因此客户端可以在需要时获取更新的资源,而无需重新集成到新版本。...我们还没有得到所有前端或后端开发人员的完全认证,但是我们的 REST API 和 GraphQL API 可以共存。我们学会了不操之过急,一点点来。

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

    深度解析:PayPal、Netflix等顶级公司如何做API治理

    许多开发人员都欢迎有关如何设计 API 的指南,因为这意味着不必过多地担心做出选择——例如如何处理一组 API 结果中的分页,或者事务 ID 应该叫什么。...如果各个团队觉得可以忽略 CDA 告诉他们做的事情,那么它就无法有效。相反,CDA 需要认识到,过于繁重或官僚的流程会促使开发人员寻求绕过它的方法。 使用 CDA 模式的主要优点是它推动了统一性。...鉴于此,CDA模式最好应用于启动流程时,或变更量相对较小时。不出所料,它在监管更严格的行业中通常更受欢迎。 PayPal如何使用集中式设计权威 在线支付提供商PayPal使用集中式设计权威进行治理。...设计(API设计审查):对于REST API,使用OpenAPI方法,将API契约和示例通过拉取请求提交给中心团队进行审查。一群API设计师会审查规范是否符合设计标准。...“任何想要成为这个联邦图一部分的团队都需要参与模式工作组。我们有一位数据架构师负责监督这个单一统一图的演变。因此,任何时候有人想要向现有类型添加新的实体或字段,他们都必须来到模式工作组参与讨论。

    7810

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

    为了帮助API开发者了解使用哪种API设计风格以及在什么情况下使用,我们把REST与其他三种选择放在一起进行了一个说明,即:gRPC, GraphQL和Webhooks。...总之,REST是现代微服务API领域非常高效、有效和强大的解决方案。 二、REST案例:PayPal REST API的一个示例应用是PayPal REST API。...PayPal强大的核心业务功能之一是为支付处理提供集成系统。因此,需要使用API简化这一过程。...利用Foursquare服务,手机用户可“检入”某个地点,该地点可为全球任何城市的一家饭店、好友家庭居住地或一家商店等等。一旦用户检入,Foursquare将把用户当前所在位置通知给该用户的其他好友。...GraphQL来自Facebook,其血统很好地展示了它的应用场景,即,请求者需要特定格式的数据来进行特定的使用,在这些场景中,数据格式及其之间的关系至关重要,没有任何其他解决方案拥有同等程度的数据的组合提供能力

    2.6K30

    工作流的应用价值

    直观显示您的工作流程,并根据用户与您的应用交互的方式和时间触发一组操作。  使用拖放式脚本生成器执行计算和复杂的业务任务。 通过自动化流程提高工作效率 为任何流程配置多级别审批。...通过有关更新或任何流程偏差的通知,随时掌控您的工作。 定时执行任务并按时发送报表、活动邀请和提醒。 与合适的人员共享合适的数据 将用户分组为角色并分配权限,以便他们只能看到其需要的内容。...让您的工作流程更快更流畅 帮助企业快速完成数字化转型 当开展业务时,同时进行多项事务在所难免,客户、项目进度以及正在进行的任务,都会占据您大量的精力,导致您忽略事务的优先级。...只需单击按钮,即可执行计算和其他自定义操作。 让您按照事务优先级安排日常任务。 轻松数据共享,高效协同工作 添加用户并允许其访问、编辑和修改相关的应用组件。...使用简单的 Deluge 脚本块链接 PayPal、Salesforce、Quickbooks 和 Zapier 等广受欢迎的服务。 通过我们的REST API连接到各种云服务。

    2K30

    不容错过的 Node.js 项目架构

    Express.js 是用于开发 Node.js REST API 的优秀框架,但是它并没有为您提供有关如何组织 Node.js 项目的任何线索。 虽然听起来很傻,但这确实是个问题。...这是我要谈论的 Node.js 项目结构。 我在构建的每个 Node.js REST API 服务中都使用了下面这个结构,让我们了解下每个组件的功能。...其思想是使用关注点分离原则将业务逻辑从 Node.js API 路由中移开。 ? 图片描述 因为有一天,您将希望在一个 CLI 工具上来使用您的业务逻辑,又或从来不使用。...这就是创建依赖注入框架的原因。 这个想法是在类中定义你的依赖,当你需要一个类的实例时只需要调用 “Service Locator” 即可。...您不应该依赖 Node.js setTimeout 或其他延迟代码执行的原始方法,而应该依赖于一个将您的 Jobs 及其执行持久化到数据库中的框架。

    5.9K30

    相比摩根大通,PayPal 现在是银行面临的更严峻威胁?

    商家被视为合作伙伴,而不仅仅是交易的渠道,PayPal 致力于寻找帮助增加商家销售额的方法,这当然会增加 PayPal 的交易量和报酬。 PayPal通过哪些业务赚钱?...在其发展的大部分时间里,大部分收入来自接收和处理在线、移动和店内支付交易的费用,通常由商家支付。消费者收费包括从借记卡或银行账户到 PayPal 或 Venmo 账户的即时转账费用。...在一个地方,消费者几乎可以在支付方面做任何他们需要的事情,甚至更多:使用数字钱包支付,包括通过二维码和 PayPal 信用卡支付;将其他信用卡、借记卡和会员卡加载到钱包中;获取有关预定付款的更新;汇款和拆分账单...Esch 也是 PayPal 数字钱包的负责人,他补充说:“我们有很多 PayPal 功能,我们仍然需要使用这些功能,但这将导致更广泛的商业化。”...从一个国家到另一个国家的业务变化是有帮助的。虽然在六周内完成的分期付款在美国引起了共鸣,但 Lisiewski 指出,在法国,由于法国经济的性质,四个月内付款的方法效果更好。

    2K10

    Paypal出现漏洞,可获取账户余额和近期交易数据

    PayPal的bug允许通过逐一列举的方式获取付款方式的最后四位数字以及披露任何给定PayPal账户的账户余额和近期交易数据。...介绍 这篇文章详细介绍了一个问题,它允许列举付款方式的最后四位数字(例如信用卡或借记卡),并且披露任何给定PayPal账户的账户余额和近期交易。...这次攻击被提交给PayPal的 bug奖励计划 ,在该程序中它被归类为超出范围,这是无可否认的,因为他们的程序范围没有提到对他们的交互式语音响应系统的任何攻击。...如果攻击者知道目标帐户的电子邮件地址和电话号码,首先会使用PayPal的忘记密码页面来检索与该帐户关联的支付方法的最后两位数。...最后,我想指出的是,由于在攻击中不需要或涉及到人工交互,所以它本质上是一个进入PayPal账户的后门——允许攻击者在任何时候查询任何给定账户的经常账户余额和最近的交易信息。

    2K40

    不被PayPal待见的6个安全漏洞

    也就是说当攻击者以其它方式获取了受害者的密码凭据实施登录后,由于PayPal判定攻击者使用的手机设备或IP地址与之前受害者的不同,从而会发起一个2FA方式的身份验证,此时,PayPal会通过短信或邮箱发送一个验证码给当前登录的攻击者...但是,PayPal却不这么认为,他们在回复邮件中称”这种形为不会导致任何安全问题“(there does not appear to be any security implications as a...在该系统中,当用户用手机号码进行账户注册时,会向PayPal后端服务器api-m.paypal.com执行一个预录式呼叫或短信请求以进行用户状态确认。...漏洞3:转账安全措施可绕过 为了避免欺诈和其它恶意行为,PayPal在应用中内置了很多保护用户钱款的转账防护措施,来针对以下用户钱款操作: 使用一个新的电子设备进行登录转账; 从一个新的地理位置或IP地址实行转账...当以上述一种或几种行为发生时,PayPal在触发转账防护措施过程中,会抛出一些错误,其中包括: 你需要链接到其它新的支付方式实现转账(You’ll need to link a new payment

    3.4K30

    JunoDB:PayPal开源支持3500亿次日请求的键值存储

    它使用一致性哈希算法对数据进行分区,最大限度地减少了集群扩展或收缩时的数据移动。为了实现零停机,JunoDB 使用了数据中心内和跨数据中心复制,并通过基于仲裁的协议和两阶段提交确保数据一致性。...使用 JunoDB,应用程序可以有效地存储和缓存数据,以便在关系数据库和其他服务上快速访问以及降低负载。...对于这个新的 NoSQL 解决方案,其建议的应用场景包括缓存、存储用户首选项、帐户详情和 API 响应等信息、幂等性(确保操作幂等并消除任何重复处理)和延迟桥接(帮助解决由跨区域的分布式数据库所造成的复制延迟...在 Hacker News 上,许多用户讨论了该项目及键值存储的好处,并将 JunoDB 与 FoundationDB 等其他数据库进行了比较,而用户 gregwebs 则质疑公告中缺乏数据: 如果能看到一些基准测试...为了帮助开发人员有效地使用该数据库,PayPal 发布了服务器设置和客户端构建视频教程。该项目的路线图上还包括 Golang 客户端和 Kubernetes JunoDB 操作符。

    32740

    DNSX:一款功能强大的多用途DNS工具包

    功能介绍 提供了简单实用的接口来查询DNS记录; 支持A、AAAA、CNAME、PTR、NS、MX、TXT、SOA; 自动处理通配符子域; 经过优化,易于使用; Stdin和stdout支持与其他工具一起工作...dnsx -h 上述命令将显示该工具的帮助信息,下面给出的是该工具支持的所有功能选项: 参数 描述 样例 a Query A 记录 dnsx -a aaaa Query AAAA 记录 dnsx -aaaa...cld-edge-origin-api.paypal.com appmanagement.paypal.com svcs.paypal.com trinitypie-serv.paypal.com...fpdbs.paypal.com 通配符过滤 DNSX有一个特殊的功能,就是它能够处理基于DNS的多级通配符,并且只需要很少的DNS请求。...有的时候,如果解析所有的子域名,这将导致结果中存在大量的无效数据。

    2.2K30

    8个woocommerce支付网关插件推荐

    FONDY Payment Platform 免费的FONDY网关插件可轻松在欧盟及其他地区的120个国家/地区接受付款。...加上FONDY,您甚至可以自定义商户门户并将其添加到商户门户中,以使结帐过程变得无缝。不去爱的种种? 3....PayPal Checkout by WooCommerce 任何使用WooCommerce来运行其WordPress商店的企业家都可以使用此功能丰富的附加组件在安全的环境中出售其产品和服务。...同样,它不应以任何方式改变您网站的主题。只需记住,In-Context Checkout使用了一个模式窗口(在PayPal的服务器上)。但结帐后,客户将被重定向回您的站点。 4....另外,插件开发人员还可以为每月销售额至少1000美元的任何商店提供一个免费的PayPal Payment Pro帐户。

    6.8K00

    大公司是如何发展元数据的?

    IBM写了一篇关于Apache Atlas在开放生态系统中作用的文章。...WhereHows 开源 LinkedIn 的数据团队开发了 WhereHow,WhereHow 围绕着任何一个大数据系统中最重要的组成部分数据本身构建了一整套关于数据处理流程、使用人员和相关洞见的集中式平台和相应网页...Marquez 遵循集中式数据存储模型,该模型具有REST API接口(用于提取数据)和Metadata UI(用于数据集发现),可以连接多个数据集并探索其依赖关系图。...Artifact 提高了生产率,并提供对数据的更大可访问性并允许更高级别的数据治理。同时这篇讲述了构建数据发现服务所面临的挑战,比如获取元数据到转换、建模和应用,并使其更易于使用。...这篇文章讲述了 UDC 数据量的增长是如何帮助 Paypal 弃用了几个重复的基础架构,以及 Paypal 为什么采用拉取模型来获取元数据。

    2K32

    网络钓鱼攻击:Paypal用户很不幸的又中枪

    收到邮件的用户都应该知道,邮件中包含很多订单信息,甚至还会附着一电子收据。当然这个电子收据只是为了迷惑你,让你相信这是Paypal官网发送的邮件。...一旦用户点击“争端链接”便转向一个假的Paypal网页,并且需要登录。用户一旦“登录”,黑客便能获取用户Paypal账户的所有信息。...你可在完成交易后的180天之内前往解决方案中心提起争议请求 如果你没有授权此次交易,点击下面争端事务链接并获得全额退款 争端事务:【Encrypted Link】” 那么,是否有办法避免上当受骗?...谨记:虚假的Paypal电子邮件使用的称呼经常“亲爱的客户”,事实上Paypal从不使用这样的称呼。...·主动提供工作机会 当然还有来自意想不到的好友借钱的电子邮件、Facebook或者其他在线消息。

    1.6K100

    Google 开源的依赖注入库,比 Spring 更小更快!

    最佳实践:官方推荐的最佳实践; Guice概述 Guice是Google开源的依赖注入类库,通过Guice减少了对工厂方法和new的使用,使得代码更易交付、测试和重用; Guice可以帮助我们更好地设计...相比于new,更容易想到的改进是使用工厂方法,但是工厂方法在测试中仍存在问题(因为通常使用全局变量来保存实例,如果在用例中未重置可能会影响其他用例)。...Module接口或继承自AbstractModule,然后在configure方法中设置绑定 (后面会继续介绍)即可。...模块中定义的、带有@Provides注解的、方法返回值即为绑定映射的类型。...; 只注入直接依赖:不用注入一个实例来获取真正需要的实例,增加复杂性且不易测试; 避免循环依赖 避免静态状态:静态状态和可测试性就是天敌; 采用@Nullable:Guice默认情况下禁止注入null对象

    1.1K10

    Google 开源的依赖注入库,比 Spring 更小更快!

    最佳实践:官方推荐的最佳实践; Guice概述 Guice是Google开源的依赖注入类库,通过Guice减少了对工厂方法和new的使用,使得代码更易交付、测试和重用; Guice可以帮助我们更好地设计...相比于new,更容易想到的改进是使用工厂方法,但是工厂方法在测试中仍存在问题(因为通常使用全局变量来保存实例,如果在用例中未重置可能会影响其他用例)。...Module接口或继承自AbstractModule,然后在configure方法中设置绑定 (后面会继续介绍)即可。...模块中定义的、带有@Provides注解的、方法返回值即为绑定映射的类型。...; 只注入直接依赖:不用注入一个实例来获取真正需要的实例,增加复杂性且不易测试; 避免循环依赖 避免静态状态:静态状态和可测试性就是天敌; 采用@Nullable:Guice默认情况下禁止注入null对象

    95320

    常见的API架构风格

    以下是几种常见的API架构风格: 1.REST(表述性状态转移): REST是一种基于标准HTTP方法的架构风格,通过使用无状态的通信来实现轻量级的、可扩展的服务。...使用URI标识资源,而数据交互通常采用JSON或XML格式。 2.GraphQL: GraphQL是一种用于API的查询语言,允许客户端以更灵活的方式获取数据。...客户端可以明确请求所需的数据,避免过度获取或不足获取的问题。 GraphQL API由类型和操作构建的模式定义。...4.RPC(远程过程调用): RPC是一种协议,用于在网络上请求和执行服务端的过程或函数。 它简化了分布式系统中的通信,通过本地调用的方式实现远程调用。...例如,我们使用Stripe或Paypal作为支付渠道,并为支付结果注册了一个Webhook。当第三方支付服务完成时,它会通知支付服务支付是否成功或失败。Webhook调用通常是系统状态机的一部分。

    21410

    【REST架构】OData、JsonAPI、GraphQL 有什么区别?

    它们都描述了用于创建和使用 RESTful API 的标准协议。GraphQL 是一种完全不同的 API 设计方法,并指定了一种查询 API 资源的不同方式。...JSON API 通过 JSON 文档中的链接属性支持 HATEOAS。其他功能包括分页、排序、过滤和关系。JSON API 服务器生成的 JSON 文档非常冗长,带有许多嵌套属性。...它在 React 爱好者中很受欢迎,主要与 React 或 Vue.js 结合使用。与 GraphQL 类似的是 Falcor,它也相对较新。...这种新模型更适合开发人员使用,但它相对于 REST 的优势是值得商榷的。鉴于其年轻,生态系统尚未成熟。 为了清楚和完整起见,我将 OpenAPI 包括在列表中,尽管它并不完全是 API 规范。...总之,OData 和 JSON API 都是 JSON 数据格式,它们在数据周围添加上下文和特征(例如链接),GraphQL 是一种完全不同的查询和变异 JSON 数据的新方法,而 OpenAPI 是声明和记录任何数据的标准方法

    1.6K20

    1年将超过15PB数据迁移到谷歌BigQuery,PayPal的经验有哪些可借鉴之处?

    第一波大迁移是将一个仓库负载迁移到 Google Cloud 中的 BigQuery,耗时不到一年。在此过程中 PayPal 团队还构建了一个平台,可以支持其他很多用例。...然后,数据会使用其他数据源修饰,例如跟踪、实验和来自 PayPal 邻接源的数据,以进行变换并加载回分析仓库供消费。...挑 战 技术挑战 要改善 PayPal 数据用户的体验,我们需要解决以下技术挑战: 安全性:由于 PayPal 处理 PII 和 PCI 数据,因此任何数据基础设施都需要完整的补丁、强化的系统配置...此外,用户希望看到基础设施不断更新,以利用新特性或根据行业趋势以新的方式处理数据。 灾难恢复:任何基础设施都应该有明确的灾难恢复选项,可以在 30 分钟内触发,为用户的工作铺平道路。...这帮助团队大大减少了我们需要迁移的负载数量。以下是从总体清单中弃用的内容细节。 图 3:在迁移过程中弃用的负载 对自动化框架的投入帮助我们区分了用过 / 未使用的内容,并在最后一步获得用户的验证。

    4.7K20
    领券