eBay 的 API 策略

2019 年 7 月 11 日

eBay 的 API 策略

在使用未能正确版本化的 SOAP API 多年之后,eBay 决定转向新的RESTful API,其中包含语义版本控制和弃用标准。他们的重点放在了可扩展性和适应性上,目标是使开发人员更容易创建使用 eBay API 的新应用程序。在一篇博客文章中,Tanya Vlahovic描述了这些概念以及它们在 API 中是如何实现的。


在 eBay 的首席公共 API 架构师 Vlahovic 看来,API 代表业务,但她强调,单独的 API 是不够的;它们必须一起使用才能给企业带来真正的价值。她将 eBays 的 API 集与烹饪进行了比较——API 是佐料,然后由开发人员社区以一些新的、创新的方式组合不同的 API 来提供一顿大餐。


要创建一个灵活和适应性强的 API 生态系统,重要的是要了解单个 API 是成功还是失败;它们是被开发人员使用还是被忽略?Vlahovic 认为,API 所有者应该非常开放,当试图改进 API 并使其得到使用时,应该从不同的角度寻找解决方案。她举了两个新 API 的例子,她认为它们改变了人们的思维方式,它们就是去年夏天发布的图像搜索机器文本翻译


Vlahovic 将 API 描述为做三件简单的事情:执行操作和收集数据,格式化数据,最后提供数据服务。她认为,创建 API 最简单的方法是设计直观、简单的契约,而不需要花费大量时间编写文档,然后让开发人员试用并评估它的价值。她指出,API 是面向人类开发人员的接口,而不是面向机器人的。


在新的 RESTful API 中,它们遵循三个质量级别的语义版本控制:Alpha、Beta 和正式可用。除了这些级别之外,它们还支持实验性 API。这允许早期采用者探索、测试 API,并快速反馈。


他们的弃用标准同时关注契约和运行时行为,并使用了和版本控制中相同的质量级别。当它们废弃 API 中的某个元素时,例如资源、字段或行为,这些元素通常以原始形式维护 18 个月。对于每一个新弃用的元素,都会新发布一个 API 的次要版本,并伴有一个公开声明,其中包含针对开发人员的详细说明。如果需要,这些说明中还会包括迁移说明。如果弃用导致向后不兼容,API 所有者必须决定是否发布一个新的主版本,而不是一个次要版本。


无论何时弃用一个元素,都会将 deprecated 属性添加到元素中,并更新 description 属性以反映该弃用。这两个属性在OpenAPI规范中都有定义。在运行时,它们会使用包含 299 代码的标准 Warning HTTP 响应头来发送弃用通知。这个头应该被消费者应用程序记录和监视,以便开发人员可以得到关于新更改的警告。


Vlahovic 将 API 视为使开发人员能够创建新应用程序的构建块。为了简化这项工作,eBay 提供了 SDK,抽象了一些概念。一个例子是行业标准OAuth 2.0协议,eBay 使用该协议处理授权和数据隐私问题。它们要求所有 API 客户端在使用其市场功能之前都要经过授权,因此,SDK 中包含了对这一点的支持。除了现有的开源 Java OAuth 客户端库之外,他们最近还发布了一个 C#和一个 Python 版本的库。


在早些时候的一篇博文中,Vlahovic 写了 eBay 两年的历程,他们向市场交付了一系列新的API,以及他们在那段时间中学到了什么。


原文链接:


API Strategies at eBay


2019 年 7 月 11 日 08:002958
用户头像

发布了 323 篇内容, 共 140.6 次阅读, 收获喜欢 661 次。

关注

评论

发布
暂无评论
发现更多内容

CloudQuery V1.2.0 版本发布

CloudQuery社区

数据库 sql 编辑器 工具软件

「排序算法」图解双轴快排

bigsai

排序算法 快速排序 双轴快排

英特尔独显终于来了!锐炬®Xe MAX为非凡S3x带来设计师级创作体验

intel001

Linux-技术专题-Linux命令如何进行查看进程

李浩宇/Alex

颠覆!阿里5位P8大佬分享进阶王者500修炼手册,修三门课程

996小迁

Java 程序员 架构 面试

​《自己动手做大数据系统》.pdf

田维常

电子书

架构师训练营 W03 作业

Geek_f06ede

架构师训练

为什么阿里的程序员成长如此之快?看完Alibaba“Java成长笔记”我懂了!

Java架构追梦

Java 学习 架构 面试 成长笔记

《CSS权威指南》.pdf

田维常

电子书

《图解Java多线程设计模式》.pdf

田维常

电子书

Worktile旗下智能化研发管理工具PingCode 宣布25人以下免费

PingCode

团队管理 程序人生 敏捷开发 研发管理 研发管理工具

《MongoDB实战》.pdf

田维常

电子书

架构师训练营 W03 总结

Geek_f06ede

架构师训练

小熊派开发板实践:智慧路灯沙箱实验之真实设备接入

华为云开发者社区

物联网 IoT 路灯

《大话设计模式》.pdf

田维常

电子书

《Redis实战》.pdf

田维常

电子书

腾讯内容首发:分布式核心原理解析笔记+分布式消息中间件实践笔记PDF版

Java架构追梦

Java 架构 面试 分布式 消息中间件

接口测试用例编写和测试关注点

测试人生路

接口测试 测试用例

如何在面试中解释关键机器学习算法

计算机与AI

学习 数据科学

给萌新HTML5 入门指南(二)

Geek_Willie

阿里对Java候选人的面试考察重点,面P7必问(收藏备用)

小Q

Java 学习 架构 面试 高并发

《图解HTTP》.pdf

田维常

电子书

《大数据之路:阿里巴巴大数据实践》.pdf

田维常

电子书

《Git权威指南》.pdf

田维常

电子书

央视呼吁电商双十一少一些套路:应该严打网店套路营销

石头IT视角

环球易购数据平台如何做到既提速又省钱?

苏锐

大数据 hdfs S3 CDH 成本优化

【涂鸦物联网足迹】物联网基础介绍篇

IoT云工坊

人工智能 云计算 物联网 云平台 AIOT

《Java EE设计模式:Spring企业级开发最佳实践》.pdf

田维常

电子书

一场关于FLV是否要支持HEVC的争论

wangwei1237

技术文化

帮助企业摆脱困境,名企归乡工程师:能成功全靠有它!

Learun

敏捷开发 快速开发 企业开发 企业应用

测试攻城狮必备技能点!一文带你解读DevOps下的测试技术

华为云开发者社区

敏捷开发 测试 瀑布流

eBay 的 API 策略-InfoQ