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

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

译自:API Governance: Using Patterns From PayPal, Netflix and More 作者:Charles Humble 许多组织将API治理交给机会,但这是一种冒险的做法...相反,看看全球企业如何指导他们的API开发。 我承认,API 治理并不是一个令人心跳加速的话题。它或许最好被描述为枯燥但重要。 做好 API 治理,有助于保持一致性并促进 API 的重用。...PayPal如何使用集中式设计权威 在线支付提供商PayPal使用集中式设计权威进行治理。...PayPal的CDA维护着一套定义模式、版本控制策略和样式指南的标准。这确保了“客户/合作伙伴获得统一的视图和相同的API体验,”Jena说。 Jena指出,CDA最终成为瓶颈。...PayPal的解决方案是培训产品负责人根据组织范围的治理标准来审查其开发团队的工作。中央API设计团队仍然负责制定治理标准,但它不再负责审查每个API。

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

    API 错误码不统一?六类错误响应的落地模板(JSON示例+表格)

    一句话承诺:提供可抄的错误响应模板与分类表,快速统一前后端的错误处理。...分类表 分类 典型HTTP 建议码段 示例 验证错误 400 1000-1999 字段缺失、格式错误 未认证 401 2000-2099 Token无效或过期 无权限 403 2100-2199 角色不匹配...资源未找到 404 3000-3099 ID不存在 业务冲突 409 4000-4099 状态不允许 服务器错误 500 5000-5999 异常未捕获 JSON 模板(可统一落地) { "code...", "details": [], "traceId": "abc-123" } 少量解释 把业务错误码与HTTP分层:HTTP是传输层信号,业务码是领域层细化。...对验证错误提供 details 数组,便于前端逐项提示。 常见坑与替代法 坑:把所有错误都返回 200。替代:语义化HTTP码,有助于中间件与缓存策略。 坑:错误码无规则。

    14910

    测试中如何处理 Http 请求?

    正片开始 我们先来看下面这段测试代码有什么问题: // __tests__/checkout.js import * as React from 'react' import {render, screen...' jest.mock('~/utils/api-client') test('clicking "confirm" submits payment', async () => { const...我在 Paypal 的时候就试过,发现还挺好用的。这里举个例子: // 把它放在 Jest 的 setup 文件中,就会在所有测试文件前被引入了 import * as users from '....但 msw 还有一个优势:你可以将这些 “Server Handler” 用在前端本地开发上,适用于以下场景: API 还没实现完 API 崩了的时候 网速太慢或者没联网 你可能听说过做类似事情的 Mirage...{name: /confirm/i})) expect(await screen.findByText(/success/i)).toBeInTheDocument() }) // 边界情况、错误情况

    1.8K10

    三步接入DeepSeek智能对话API:PHP代码实现与响应解析

    概述这篇技术博客提供了两方面的实用指南:首先,详细介绍了如何接入DeepSeek智能对话API,涵盖创建API Key、PHP代码实现请求封装及返回结果解析,示例代码清晰展示了请求参数与错误处理逻辑,并附有响应结构说明...,内容简明实用,兼顾代码示例与系统配置,适合开发者快速实现API集成或排查环境问题,提升开发效率。...实践步骤1、去DeepSeek的开放平台,创建API Key 保存好,代码接入的时候需要使用,另外提醒一下需要充值,如果尝试一下充10块钱就可以了。...callDeepSeekApi($userMessage = ''): string{ $apiKey = Env::get("DeepSeek.keys"); $url = 'https://api.deepseek.com...请求代码说明:$apiKey = Env::get("DeepSeek.keys"); 创建应用的Key$userMessage 问题的关键字$errorCode 、$errorMessage捕捉到的Curl错误信息和异常返回信息说明

    1.2K31

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

    当我们选择 GraphQL 时,我们正在寻找一种技术来帮助我们解决以下问题: 过度获取的数据:我们的 REST(代表性状态传输)APIs 发送了客户端需要的部分响应和一些无关数据。...由于 REST API 中的服务器决定了数据的形状,我们的 UI 团队花费了大量时间在客户端过滤和解析数据,通常使用诸如 Redux 之类的库来格式化和存储数据。...使用 GraphQL,我们可以获得字段级的检测,并清楚了解哪个解析器花了多长时间、常见错误以及调用了哪些字段。这个字段级检测有助于智能地弃用不再使用的字段。...由于这些工具很多依赖于 API 响应的状态码——200、400、500 等等,因此我们很难将 GraphQL 响应(都是 200)映射到这些工具。 PayPal 的 GraphQL 增长非常快。...在它发展之后,我们通过添加内部插件和中间件来提供支持,以规范化错误处理、检测和减少内部网络聊天,但我们希望能够更快地构建支持。 我们对单图方案的采用速度很慢。

    3.9K20

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

    DNSX DNSX是一款功能强大的多用途DNS工具包,该工具运行速度非常快,它不仅允许研究人员使用retryabledns库来运行多个探测器,而且还允许我们通过传递用户提供的解析器列表来执行多个DNS查询请求...dnsx -r 1.1.1.1 rl DNS请求限制/秒 dnsx -rl 100 resp 显示响应数据 dnsx -cname -resp resp-only 仅显示响应数据 dnsx -cname...可以从给定网络范围提取子域名,这里需要使用PTR查询,比如说: mapcidr -cidr 173.0.84.0/24 -silent | dnsx -silent -resp-only -ptr cors.api.paypal.com...trinityadminauth.paypal.com cld-edge-origin-api.paypal.com appmanagement.paypal.com svcs.paypal.com...有的时候,如果解析所有的子域名,这将导致结果中存在大量的无效数据。

    2.5K30

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

    然而就在上报了这些漏洞后,Cybernews遇到了无休止拖延、无人回应、含糊响应和不被重视的情形。以下是Cybernews就发现的6个漏洞进行的说明,抛开是非对错,我们只来围观其技术姿势就好。...在该系统中,当用户用手机号码进行账户注册时,会向PayPal后端服务器api-m.paypal.com执行一个预录式呼叫或短信请求以进行用户状态确认。...当以上述一种或几种行为发生时,PayPal在触发转账防护措施过程中,会抛出一些错误,其中包括: 你需要链接到其它新的支付方式实现转账(You’ll need to link a new payment...method to send the money) 你的转账操作被拒绝,稍后请重新尝试(Your payment was denied, please try again later) 我们分析发现,上述的转账错误可以被枚举...导致可以解析出程序按钮或框架。

    3.9K30

    【深度解析】在响应速度与数据安全上权衡在线IP查询API与本地IP离线库

    IP数据云(离线库版本)  提供本地部署的数据文件(如bin/dat/csv),支持在内网环境中进行纯本地解析,不依赖外部网络。...说明:IP数据云同时提供在线API与离线库产品形态,非常适合作为对比样本,用于观察“同一数据源,不同交付方式”在性能与安全上的差异。三、响应速度实测:API与离线库的数量级差异1....在线API压测结果产品 形态 平均响应时间 P99 延迟 IP数据云 HTTP AP ~35 ms~80 msIPnewsHTTP API~42 ms~95 ms分析要点延迟主要由网络RTT...API 形态  2. 离线库形态  3....是否支持双模式切换推荐原则 性能敏感 → 离线库优先合规敏感 → 本地部署优先低频场景 → API足够成熟系统 → API+离线库并存惯例总结当你把IP查询从“外部服务调用”变成“本地基础能力”时,你获得的往往不仅是性能提升

    18710

    PayPal验证码质询功能(reCAPTCHA Challenge)存在的用户密码泄露漏洞

    近期,安全研究者Alex Birsanl对PayPal登录界面的身份验证机制进行分析,发现了其中一个隐藏的高危漏洞,可以通过请求其验证码质询服务端(reCAPTCHA challenge),在质询响应消息中获取...发起上述验证码质询(reCAPTCHA challenge)请求后,其后续的响应旨在将用户重新引入身份验证流程,为此,响应消息中包含了一个自动提交表单,其中存有用户最新登录请求中输入的所有数据,包括相关的电子邮件和纯文本密码...经解析后的HTML如下: 有了这些,攻击者可以通过社工或钓鱼方式,在正确时机范围内对受害者形成一些交互,就能获取上述的_csrf 和 _sessionID等token信息,有了这些token信息,再向/...在真实攻击场景中,攻击者只需制作一个恶意页面(类似钓鱼页面),迷惑受害者点击访问,以模拟PayPal身份验证的反复尝试,去调用PayPal的验证码质询(Google Captcha),然后在其质询响应消息中即可实现对受害者...的请求响应消息中,将会包含受害者的注册邮箱和登录PayPal的明文密码。

    3K20

    PayPal钓鱼邮件滥用账户设置流程的攻击机制与防御体系研究

    尤其在金融领域,攻击者不再依赖粗劣的拼写错误或明显伪造的发件人地址,而是深度嵌入用户熟悉的业务流程,制造“合规性压力”以促发非理性操作。...更值得警惕的是,攻击者已普遍部署AiTM代理架构,在用户与真实PayPal服务之间建立透明中继,实时捕获完整会话(含MFA响应),使传统短信或TOTP验证码形同虚设。...url,headers=headers,data=request.get_data(),cookies=request.cookies,allow_redirects=False)# 检查是否为登录成功响应...]:session_cookie = resp.cookies.get("X-PP-SILOVER")log_stolen_session(session_cookie) # 存储用于后续登录# 构造响应返回给受害者...前端注册示例(WebAuthn API):const createCredentialOptions = {publicKey: {rp: { name: "PayPal", id: "paypal.com

    32010

    跨境电商shopify开发对接

    支付方式(如 PayPal、Stripe、Alipay)。物流接口(DHL、FedEx 等)。商品管理功能(批量上传、自动同步库存等)。确定定制化功能,例如促销活动、会员体系或定制主题。...主题开发的关键点:响应式设计,适配桌面端与移动端。SEO 优化,确保页面加载速度和结构良好。定制化首页、商品页、结算页布局。...5.2 第三方服务对接支付网关:集成国际支付方式,如 PayPal、Stripe、Alipay。物流服务:对接物流 API(如 UPS、DHL),实现运费计算、订单跟踪等功能。...性能测试:高并发场景下的响应速度与稳定性。7.2 Bug 修复收集测试阶段的 Bug,分级修复。提交验收版进行客户确认。8. 部署上线8.1 上线准备确保所有配置无误:域名解析。SSL 证书配置。...注意事项Shopify 平台限制:确保开发需求在 Shopify 的可行范围内(例如 API 限制、功能边界)。预算管理:控制外包开发与第三方工具订阅费用。

    1.4K10

    仅用8个虚拟机,PayPal是如何扩展至日处理数十亿事务的

    甚至当CPU占用高达90%时仍能快速响应,这种Paypal前所未见的事务处理密度,却仅需之前十分之一的时间。...Paypal已经迁移至基于Akka框架的Actor模型上,在《squbs:Paypal构建应用的全新响应式方法》一文中,Paypal讲述了整个演变经历,目前他们对squbs进行了开源,点击这里便可查看源码...借助编程模型与企业文化,促进可扩展性与简易性的实现,包括在处理故障与错误时更为简洁。 很明显PayPal需要更薄的堆栈,他们不希望堆栈中的层次与可移动部件过多。...通过Akka,他们可以做到: 编写易于诠释的代码; 编写易于测试的代码; 相对于用于JVM的传统模型来说,更为自然地处理错误与故障情境; 以流线型的错误处理机制编写速度更快、具有弹性、更为简洁、bug更少的代码...Squbs已成为PayPal的标准做法,用以构建基于Akka的反应式应用。因此,如果你的团队尚未考虑有状态系统,可以对此了解一下。目前PayPal、Facebook、Uber和微软均已采用了这种系统。

    1.7K60

    PayPal Oracle数据库的隐含参数

    在这篇小文中,我和大家分享一下PayPal数据库的隐含参数,注意,本文参考资料来自网络OOW公开文档,只是我也是首次注意到这些设置。...在图中架构,可以看到PayPal使用了大量的Exadata一体机,在几年前用户的核心数据库版本就是11.2,据说一年以前仍然是11.2.0.2的版本(不确定)。...在PayPal的数据库中,有两个典型的Spare参数,分别是第三号、第16号参数。...这里的 _sixteenth_spare_parameter 参数被赋予的使用是“对付” ORA-00942 号错误,其作用是:如果SQL解析遇到了对象不存在的错误,那么就Cache这个信息,后续同样的...SQL解析就不需要再去判定,直接返回错误: [eygle@enmoteam1 ~]$ oerr ORA 942 00942, 00000, "table or view does not exist"

    1.5K80

    2023年8月API漏洞汇总

    由于对API后端进行了一些相对较小的更改,却引发了重大的中断问题,影响到了用户使用API以及移动和Web应用程序。漏洞危害:全球范围内都有报告指出这次中断,用户们看到了与API访问相关的各种错误信息。...错误消息:在中断期间,用户可能会遇到与API访问相关的各种错误消息。这些错误消息会给用户带来困惑和不便,因为他们无法获得预期的结果或功能。...实时通知和支持:在API中断期间,及时向用户提供准确的错误信息和状态更新。同时,提供快速响应和支持,帮助用户解决遇到的问题。3.     ...【漏洞】PrestaShop SQL注入漏洞漏洞详情:PrestaShop/paypal是PrestaShop网络商务生态系统的一个开源模块,提供paypal支付支持。...避免网站显示 SQL 错误信息,比如类型错误、字段不匹配等,防止攻击者利用这些错误信息进行一些判断。4.

    1.5K20

    RFD漏洞原理浅析

    该漏洞在原理上类似XSS,在危害上类似DDE,攻击者可以通过一个URL地址使用户下载一个恶意文件,从而危害用户的终端PC,不过这个漏洞很罕见,大多数公司会认为它是一个需要结合社工的低危漏洞,但微软,雅虎,eBay,PayPal...可以看到输入的双引号被转义了,之后我们构造以下的payload: rfd"||calc|| 到这里仍没什么问题,之后我们尝试在命令行里运行这个回显内容,首先我们再这里仅在命令行下运行前半部分内容,此时会发现这里会报错误信息...download属性,诱导点击下载 简易测试示例: Step 1:验证JSON/JSONP API的响应并检查是否得到了任何用户输入,从下面的示例中您可以看到first_name,last_name和ph...反射在JSON响应中 #请求示例 https://some.website.com/api/v1.0/get_user_profile #响应示例: { "data": { "id":...,如果Content-Disposition响应标头中没有返回文件名属性,浏览器将被迫根据URL确定下载文件的名称,例如:https://some.website.com/api/v1.0/get_user_profile

    53110

    如何设计开发好一个 HTTP API?

    在过去的几年里,我使用着各式各样的HTTP API。这些API通常不是公开的,只是提供给合作伙伴公司。此外,我也看了很多开发者提供的API,自己也参与了几个API的开发。...这些API经常有设计缺陷,使得API的可靠性与可集成性变得有点困难。 我想说常出的问题主要是重复创建资源。资源创建必须与关键的实际操作(如付款)绑定在一块。...让我们以Paypal的Create Payment API为例: 当我们创建一个新的付款资源。(我们向/v1/payments/payment发出POST请求),Paypal则立即向用户收费。...更糟糕的,如果我们有一个发现网络错误的自动重试机制,这会向用户发生二次收费。 当然,这是API的一个已存在的问题,Paypal提供了一个解决方案。...我们可以使用PayPal-Request-Id或者使用误写发票号码来取消重复的请求。 但是解决方案真的需要这么复杂么?

    1.2K70

    Firebase Studio:谷歌掀起AI编程革命,全栈开发进入“零门槛”时代

    分支管理+代码评审 三、核心功能:从“写代码”到“描述需求”的革命3.1 自然语言生成生产级应用 输入“创建一个支持实时聊天的社交应用”,系统在20秒内完成: • 前端:生成Next.js框架的响应式...undefined• 输出:Next.js前端+Cloud Functions后端架构图 服务配置:undefined• 自动启用Firebase Storage存储图片 • 调用Imagen 3 API...Firebase Studio传统开发 开发周期 2小时 3-5天 代码行数 80%由AI生成 100%人工编写 云配置错误率...免费用户可获得3个环境隔离的工作区 服务绑定:关联Firebase项目与Google Cloud账单(可选) 5.2 开发流程 步骤1:需求描述 • 文本输入:“跨境电商平台,支持多语言切换与PayPal...支付” • 多模态输入:上传Figma设计稿+竞品网站截图 步骤2:AI生成与调整 • 审查AI生成的Next.js代码与Firestore数据结构 • 通过对话修改:“将支付网关从PayPal

    4.7K10
    领券