英特尔正在开发新编程语言 Data Parallel C++

2019 年 7 月 11 日

英特尔正在开发新编程语言 Data Parallel C++

在使用未能正确版本化的 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:003862
用户头像

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

关注

评论 3 条评论

发布
用户头像
文章内容错误了,内容是另外一篇《eBay 的 API 策略》的
2019 年 07 月 12 日 16:07
回复
用户头像
???
2019 年 07 月 11 日 11:32
回复
用户头像
标题错了??
整个文章跟《英特尔正在开发新编程语言 Data Parallel C++》有什么关系?
2019 年 07 月 11 日 08:40
回复
没有更多评论了
发现更多内容

架构训练营第五周作业总结

Geek_ce484f

极客大学架构师训练营

架构师训练营 - 作业 - 第五周

Max2@12

架构师训练营第二期Week 1作业

bigxiang

极客大学架构师训练营

架构设计学习笔记1

Arthur

极客大学架构师训练营

【第五周】课后作业

云龙

【原创】90%的人都不会做的一道笔试题

田维常

程序员 面试

架构师训练营 1 期第 4 周:系统架构 - 作业

灵霄

极客大学架构师训练营

极客时间第 2 期架构师训练营第一周作业 1

willson

架构师训练 第一周 学习总结

阿光

week5

张兵

极客大学架构师训练营

架构师训练营 1 期第 4 周:系统架构 - 总结

灵霄

极客大学架构师训练营

[架构师训练营第 1 期] 第五周命题作业

猫切切切切切

极客大学架构师训练营

【第五周】技术选型(一)

云龙

架构师训练营第 1 期 -Week5 - 课后练习

鲁小鲁

极客大学架构师训练营

week05学习总结

追风

架构师一期

[架构师训练营第 1 期] 第五周学习总结

猫切切切切切

极客大学架构师训练营

食堂就餐卡系统设计

Sandman

极客大学架构师训练营 作业

架构师训练营第二期 Week 1 总结

bigxiang

一致性Hash算法的实现及分析

天天向上

极客大学架构师训练营

第01周学习总结[架构师训练营第 2 期]

Airship

极客大学架构师训练营

食堂就餐系统

落朽

架构训练营第五周作业

Geek_ce484f

极客大学架构师训练营

食堂就餐卡系统设计

水浴清风

第一周学习总结

Alvin

学习 极客大学架构师训练营 2组

架构师训练营 Week5 - 课后作业

算法 分布式缓存 一致性哈希

一致性哈希算法 Java 实现

escray

极客大学 极客大学架构师训练营 课程作业

架构师训练营第 1 期 -Week5 - 技术选型一学习总结

鲁小鲁

极客大学架构师训练营 负载均衡架构 缓存架构 消息队列架构

架构师训练营第 5 周学习总结

netspecial

极客大学架构师训练营

架构师训练营第 1 期 - 第五周作业提交

Todd-Lee

极客大学架构师训练营

技术是否要追新?基于4点判断谈谈4点认识

田维常

程序员 技术 最新 技术追新

Netty源码解析 -- ChannelOutboundBuffer实现与Flush过程

binecy

源码分析 Netty nio

英特尔正在开发新编程语言 Data Parallel C++-InfoQ