跳至主要内容
所有帖子作者

kinlane

GitHub 的 Marc-André Giroux 的 OpenAPI 访谈

作者 博客

由 Postman 首席布道师 Kin Lane 和 OpenAPI Initiative (OAI) 业务治理委员会 (BGB) 联席主席撰写

我最近与GitHub 的员工开发人员 Marc-André Giroux 就他们的 OpenAPI 之旅进行了座谈,以了解这个社交编码平台如何在整个 API 生命周期中使用 OpenAPI。GitHub 在任何类型的软件开发中都扮演着核心角色,并且在整个 API 生命周期中也处于核心地位,但该平台的 API 在如何提供 API 基础设施规模方面提供了丰富的经验教训。因此,我们很荣幸能就 GitHub 正在进行的 OpenAPI 之旅进行讨论,并将此愿景与 OAS 社区分享。

您何时开始使用 OpenAPI 规范的旅程?

GitHub 于 2019 年开始研究 OpenAPI。有趣的是,两个团队独立地开始研究它,这突出了 OpenAPI 如何为用户带来诸多好处。一方面,我们的文档团队希望获得一个机器可读的文档,从中生成他们的文档。另一方面,API 团队(我所在的团队)希望将 OpenAPI 用作 API 开发体验的核心部分。例如,拥有设计优先流程、请求验证、契约测试、代码风格检查等。

我们的文档团队首先开始探索 OpenAPI。他们巧妙地从**我们手写的文档**生成了初始文档。这是一个很好的开始,但从我们 API 团队的角度来看,由于它是从我们无法完全信任的东西生成的,因此我们团队认为必须对这个 OpenAPI 描述进行测试,并由我们的运行时代码使用它,以确保它既准确又完整。

在 2020 年上半年,我们与文档团队合作,利用他们的初始工作,将其迁移到 API 的代码库中,并在验证中间件中使用它,该中间件将告诉我们任何不匹配之处。我们构建了自动修复错误的工具,手动修复了许多错误,并且在 2020 年 7 月,我们已准备好发布我们 OpenAPI 描述的测试版

目前哪些团队在您的组织内部使用 OpenAPI?

我们 API 的覆盖面非常广。几乎每个在 GitHub 上开发功能的团队最终都会为其编写一个 API。这意味着最终,大量不同的团队会与 OpenAPI 进行交互。作为 API 团队,我们也认为这些团队是我们的客户。我们确保他们使用 OpenAPI 的体验很棒,并且我们拥有合适的工具来帮助他们构建出色的 API。我们的文档团队还使用 OpenAPI 生成我们大多数 API 文档网站

OpenAPI 用于公共 API 吗?内部 API?还是两者兼而有之?

OpenAPI 目前仅用于我们的公共 API。我们有很多内部 API,我们最终希望用 OpenAPI 来描述它们。但是,我们最近切换到使用Twirp 作为大多数内部用例,它由 Protobufs 描述。


您能详细介绍 OpenAPI 如何在不同领域中使用吗?

文档

我们的开发人员编写的 OpenAPI 会自动与我们的文档存储库同步。我们的文档团队构建了一个很棒的管道,进一步装饰 OpenAPI,并用于呈现我们的API 文档

代码生成

我们还在我们的开源存储库中同步 OpenAPI 描述。这是我们第一个代码生成用例 Octokit JS SDK 使用的。Gregor Martynus 做了很棒的工作,使用我们发布的 OpenAPI 来生成 TypeScript 类型并为 JavaScript SDK 提供支持。

很快,我们也希望帮助我们自己的开发人员进行代码生成。我们已经在运行时利用 OpenAPI 操作来配置某些资源,但我们希望进一步推进它,并帮助从 OpenAPI 操作生成实现。

测试

GitHub 的 API 实现在一个巨大的 Ruby 单体架构中,拥有成千上万个现有测试。我们通过在 API 的现有集成测试套件中包含自定义 OpenAPI 验证中间件来利用这一点。这种契约测试对于我们对 OpenAPI 文档准确性的信心至关重要,并且是我们 OpenAPI 工作中最难也是最重要的一部分。

许多现有的 OpenAPI 验证器返回的错误不一定对用户友好。我们花费了大量时间来提出一种抽象,使我们能够返回面向开发人员或面向最终用户的错误。例如,作为集成测试一部分返回的 OpenAPI 验证错误会返回错误消息,指示开发人员错误发生的原因以及如何修复它。在请求验证方面,我们改为指示用户输入无效的原因以及如何更正它。

促使您采用 OpenAPI 的因素是什么?

虽然生成文档是一个极好的好处,但对我们来说,OpenAPI 不仅仅是这些。启用强大的工具并构建出色的开发人员体验是我们关注 OpenAPI 的主要原因。

您是否为用户提供 OpenAPI 副本供下载?如果是,您在哪里提供它?

是的!如前所述,我们已将其作为开源存储库提供,位于此处

您目前是否正在使用或已在您的操作中建立任何 OpenAPI 扩展?

我们在操作的“生命周期”的不同阶段使用了相当多的扩展。我们支持 GitHub REST API 的许多不同版本。我们的经典公共 API,以及每个版本的 GitHub Enterprise。虽然 API 类似,但它们在不同版本之间确实存在差异。我们没有复制每个操作和组件,而是选择了一个构建系统,该系统允许我们用版本信息注释 OpenAPI 对象。例如,我们有一个 `x-github-releases` 扩展,允许开发人员从某些版本中包含或排除操作。此扩展未出现在我们发布的描述中,因为它会被该构建系统剥离。

我们还有其他公共扩展,它们会向某些 OpenAPI 对象添加一些 GitHub 特定的元数据。例如,我们有一个名为 `x-github-previews` 的扩展,它会告知此操作是否为API 预览的一部分。

其他扩展在我们的开源存储库中进行了描述。

您的团队是否加入了技术开发人员社区的对话以发展 OpenAPI 规范?

目前还没有,但最近的叠加规范讨论引起了我们的极大兴趣。我们很可能会很快加入这些对话。

您是否使用其他 API 规范(例如 AsyncAPI、GraphQL、gRPC)?如果是,您能否分享原因的详细信息?

是的!我们使用 GraphQL 作为另一个公共 API,它为 GitHub 的领域提供了不同的体验,并为我们的客户提供了更灵活的用例(更多信息请参见此处)。如前所述,我们还在我们的内部Twirp API 中使用 Protobuf。

您如何说服您组织的领导层 OpenAPI 是一项重要的投资?

幸运的是,领导层已经开始使用机器可读的文档来描述我们的 API。我们已经广泛使用 JSON 超级模式,但 OpenAPI 在社区中的快速采用以及它如何使我们能够准确地描述我们的 API 使我们最终选择了 OpenAPI。

结论

GitHub 对 OpenAPI 的采用遵循了我们与其他领先的 API 提供商(如 Salesforce、Twitter、Plaid 等)看到的类似趋势。多个团队正在认识到使用 OpenAPI 的好处,文档是首要驱动因素,然后是代码生成和测试分别位居第二和第三。在其旅程中更进一步的 API 提供商已经意识到 OAS 并不总是能完全满足他们的需求,并且像 GitHub 一样,正在扩展规范并越来越多地转向参与每周的技术开发人员社区电话会议,以帮助发展规范。看到像 Github 这样的领先提供商认识到并开始利用 OpenAPI 规范 (OAS) 的业务优势,我们感到欣慰,我们期待他们更多地参与社区。
如果您想分享您的 OpenAPI 之旅故事,我们很乐意听取您的意见。虽然 Plaid、GitHub 和其他 API 提供商的故事之间的许多细节相似,但从多个视角和业务领域讲述故事会有所帮助。如果您有想分享的 OpenAPI 故事,请随时提交 GitHub 问题,并附上您的想法,我们将考虑将其添加到编辑队列中。我们要感谢 GitHub 和 Marc-André Giroux 让我们采访他们,并将这个精彩的故事与 OpenAPI 社区分享。感谢 GitHub 为我们提供了另一个例子,说明为什么 GitHub 在 21 世纪技术交付方面处于领先地位。

Postman 加入 OAI 以支持 OpenAPI 规范

作者 公告博客

这篇博文由 Postman 首席布道师 Kin Lane 撰写

当Postman去年推出其API构建器时,我们惊讶地发现OpenAPI在用户设计和开发API方面非常受欢迎。我们的使用统计数据帮助我们意识到OpenAPI规范对于客户如何设计和构建API的重要性。今天,Postman加入了OpenAPI Initiative,以便与其他35个OAI成员一起推动规范发展。我们将共同努力,继续支持基于该规范的开源工具,并壮大OpenAPI社区,以确保这一重要行业标准的未来。

从历史上看,Postman集合是API提供商在平台上定义其API的方式。随着API构建器的引入,越来越多的API提供商开始使用OpenAPI作为每个正在开发的API的核心定义。多年来,Postman集合不断发展,允许开发人员测试、模拟、记录和自动化API生命周期的各个部分。随着这种演变,每个集合都可以从OpenAPI生成,促使我们提供越来越多的特定功能,帮助客户利用OpenAPI作为API契约,在其所有API操作中使用。

  • 导入 – 您可以将OpenAPI文档导入Postman,并将其作为每个单独API的核心契约,用于在文档、集合或测试与OpenAPI契约不同步时进行验证和通知开发人员。
  • 生成 – 您可以根据OpenAPI定义生成Postman集合,创建API契约的派生版本,用于持续记录、模拟和测试跨地区的API。
  • 验证 – 每个从OpenAPI规范生成的集合都可以针对OpenAPI契约进行验证,帮助保持文档、模拟服务器和测试基础设施在所有操作中的对齐。
  • GitHub同步 – 当您使用API构建器在Postman中管理OpenAPI文档时,您可以将其同步到GitHub,使其可以在其他系统中使用,允许在Postman或通过其他工具进行更改。

OpenAPI已成为Postman客户的API工厂车间的一部分。除了规范描述的内容之外,Postman还通过允许您存储多个配置文件或生命周期阶段的令牌或密钥以及为运行测试或监控添加特定值,使API更容易使用。OpenAPI规范提供了一种定义HTTP API中可能性的方法,而Postman集合则成为定义、执行和自动化API生命周期中每个阶段的一种方式。OpenAPI和Postman之间更紧密的关系帮助了我们的客户,我们很高兴能加入关于OpenAPI路线图可能是什么的讨论,并帮助实现跨API生命周期使用OpenAPI的全部益处。

Blue Button API 将于下周在纳什维尔的APIStrat亮相

作者 公告博客

如今,API正在推动几乎每个行业的对话,但我们看到的一个更重要的领域来自联邦政府,即来自医疗保险和医疗补助服务中心(CMS)的Blue Button API。我们想邀请您下周前往纳什维尔,了解更多来自CMS的API工作,以及它们如何通过API对美国医疗保健产生影响。

我们很高兴能邀请到NewWave Telecoms and Technologies的Mark Scrimshire(@ekivemark),他是CMS项目的Blue Button创新者和开发者布道师。医疗保险和医疗补助服务中心(CMS)Blue Button API使医疗保险受益人能够将其医疗保险索赔数据连接到他们信任的应用程序、服务和研究计划,通过一系列服务实现以下功能:

– 开发人员注册面向受益人的应用程序
– 受益人授予应用程序访问其四年A、B和D部分索赔数据的权限

为一个有可能覆盖4400万受益人(即美国人口的15%)的平台提供API访问权限,这些受益人已加入医疗保险计划。这代表着我们思考美国医疗保健交付方式的一个重大转变。Blue Button API在更广泛的API对话中最重要的方面之一是,他们结合使用HL7 FHIR标准和OAuth 2.0来提供对平台的访问,为围绕当今API领域中最重要API定义的对话奠定了基础。

加入我们,9月25日星期二上午10:00,聆听Mark Scrimshire关于Blue Button API的主题演讲,分享建立API平台的一些成功和挑战的故事。Scrimshire先生只是下周在纳什维尔举办的众多不容错过的讲座之一。仍然有门票,所以请务必今天就购买,不要错过今年APIStrat上正在进行的API对话

首批APIStrat 2018纳什维尔主题演讲已发布

作者 博客, 活动

我们最近发布了田纳西州纳什维尔APIStrat 2018的日程安排,现在我们发布了该活动的首批主题演讲嘉宾。我们对本轮APIStrat的演讲兴趣以及我们在主舞台上成功确定的阵容感到非常兴奋。这使得第9届APIStrat的演讲阵容非常引人注目。

进入8月,我们想展示四位将在纳什维尔的本轮API战略与实践中登上主舞台的独特声音。

Virginia Eubanks (@PopTechWorks)
Virginia Eubanks是纽约州立大学奥尔巴尼分校政治学副教授。她是《自动化不平等:高科技工具如何画像、监管和惩罚穷人》一书的作者;《数字死胡同:在信息时代争取社会正义》;以及与Alethia Jones合著的《没有人能阻止我:与芭芭拉·史密斯一起进行40年的运动建设》。她关于技术和社会正义的文章发表在美国展望、国家、哈珀和连线杂志上。20年来,Eubanks一直致力于社区技术和经济正义运动。如今,她是Our Data Bodies项目的发起成员,也是新美国基金会的研究员。她住在纽约州特洛伊。

Kate O’Neill (@kateo)
Kate O’Neill,“科技人文主义者”,是KO Insights的创始人兼首席执行官,这是一家屡获殊荣的思想领导力和咨询公司,帮助企业、组织和城市根据人类行为和数据做出面向未来的有意义的决策。她撰写了包括《像素与场所:跨物理和数字空间连接人类体验》在内的3本书,并定期在行业会议和私人活动中发表演讲,进行主题演讲、参与小组讨论,并为各种规模的团体举办创意头脑风暴研讨会。

Jenn Schiffer (@jennschiffer)
Jenn Schiffer是一位工程师、艺术家和科技幽默家。大多数人了解她是因为她惊人的力量,以及她是Fog Creek的http://Glitch.com的社区工程师。她组织了JerseyScript,一个位于她所在的泽西城举办的每月一次的网络开发者社交活动,并创建了每个人都喜欢的免费在线像素艺术编辑器http://Make8BitArt.com。

Cristiano Betta (@cbetta)
Cristiano是一位开发者体验设计师,帮助大小公司改进其开发人员的入职、激活和支持。他喜欢查看优秀的开发者入职流程,分析和记录常见设计实践的最佳实践和陷阱。尽管他拥有超过15年的开发经验,但他相信,在本质上,我们每个人在某些方面都是初学者,文档和入职应该体现这一观念。过去,他曾担任承包商、创业公司创始人、活动组织者和PayPal的开发者布道师。

我们努力继续汇聚来自整个领域的领先API声音,但我们也认为,推动与更广泛科技领域相关的重大问题的对话非常重要。我们认为,这四位声音反映了API领域在2018年所需的活动类型,为我们作为APIStrat会议和研讨会阵容的一部分已经汇聚在一起的多样化人物增添了新的色彩。

请确保您不要错过9月24日至26日在田纳西州纳什维尔举行的对话。立即注册APIStrat 2018,并花一些时间查看我们计划的会议和研讨会阵容。我们还有更多公告即将发布,敬请关注,并且仍然有机会以赞助商身份支持APIStrat,以便您能够帮助确保自2013年以来一直进行的对话继续下去。

我们期待9月24日至26日在纳什维尔与您相见!

我们将APIStrat征文截止日期延长至周日午夜

作者 博客, 活动

我们收到了往常一样最后一刻才赶来的人们的涌入,他们担心是否能赶上今年9月在田纳西州纳什维尔提交APIStrat演讲的截止日期。我们完全理解人们都在忙于工作,截止日期可能悄悄临近,所以我们将截止日期延长至周末结束,让大家有更多时间放慢脚步,在周六和周日更多地思考他们的演讲。

我们非常希望您能提交您的演讲。虽然我们确实会对延迟提交的演讲做出一些例外处理,但并不总是会被接受,因为它们最终不会被整个委员会审查。因此,我们鼓励您花时间精心设计最佳的标题和摘要,并通过网站上的CFP流程完成提交。提交后,您的演讲将由我们明星阵容的评委进行评审。

我们期待着今年秋天在田纳西州纳什维尔与大家见面。我们知道您拥有许多精彩的故事,应该与社区分享,并期待着您在APIStrat的舞台上发表演讲。API 社区会议的第九届会议将成为迄今为止最好的一届,一如既往,我们正在寻找尽可能多元化的API故事,并邀请了与往年同样强大的演讲嘉宾阵容。不要错过这个机会,帮助塑造正在整个行业中展开的持续的API故事,APIStrat和OAI基金会正在共同塑造这个故事。

提交您在纳什维尔APIStrat演讲的最后一周

作者 博客

我们正在快速接近APIStrat在田纳西州纳什维尔的CFP截止日期。CFP表格将于下周五,2018年6月8日太平洋标准时间晚上11:59结束,只剩下一周多一点的时间可以与项目委员会分享您的故事,以便有机会被纳入演讲阵容。

APIStrat 2018是该会议的第九届,也是由OpenAPI Initiative主办的第二届。帮助确保会议继续成为您讨论API社区中常见实践以及突破性趋势的地方。

如何提交

要提交您的演讲,我们只需请您先回答三个问题

1. 您的演讲将如何使听众受益?
2. 为什么您应该成为这个演讲者?您拥有独特的故事。讲述它。
3. 准备好解释这如何融入API生态系统。

之后,我们正在寻找属于API社区中一些常见讨论领域的主题

  • API设计 – 遵循REST、超媒体或任何其他常见模式的API设计。
  • API造福大众 – 帮助确保API对世界产生积极影响。
  • API管理 – 全面涵盖API门户、文档、身份验证、日志记录、限速以及其他管理需求。
  • API SDK和客户端 – 关注在各种语言和平台中提供SDK和客户端所涉及的常见实践。
  • API安全 – 考虑API的安全实践,远远超出API身份验证和管理。
  • API成功案例 -希望分享来自公司、组织、机构和政府机构的一些成功案例。
  • API转换 – 考虑如何转换、演变、映射API,并将其转变为完成工作所需的确切内容。
  • API测试 – 关注监控、测试、性能以及确保API正常运行的其他方面。
  • API可用性 – 考虑如何使API更易于使用,并对参与API生命周期的开发人员、消费者和利益相关者更加友好。
  • 协议级别 – 深入探讨HTTP、HTTP/2、TCP以及在现实世界中用于交付API的其他协议的技术细节。
  • 数字化转型 – 关注如何在组织和文化方面转变我们的组织,以便在数字时代更高效地运营。
  • GraphQL – 关注API部署的最新趋势之一,该趋势专注于以更多数据为中心的API资源交付。
  • 超媒体 – 了解API只是Web的下一个发展阶段,并提供我们在Web中理所当然地认为的许多功能。
  • 机器学习 – 了解使用API交付机器学习、人工智能以及出现在地平线上的各种形式的“魔法”的交集。
  • 微服务 – 关注如何基于特定的知识领域交付API,确保它们只做一件事,并且做得非常好。
  • REST – 继续讨论如何使用REST交付简单易用的API资源,这些资源利用Web作为传输方式。
  • RPC系统 – 承认在现实世界中存在许多不同的设计模式,并讨论RPC实现的优缺点。
  • 标准和定义 – 关注在不同行业以及各种规模的组织中使用的标准和通用定义。

在设计演讲主题时,这应该为您提供相当不错的选择。但是,不要让这些主题限制您。在设计演讲时,请随时跳出框框思考。每年我们都会在此列表中添加新的主题,也许您的演讲将推动今年的列表向前发展。无论您决定谈论什么,都要确保您跳出自己的世界进行思考,并使其成为社区可以从中学习的内容,以及他们在活动结束后可以带回家的内容。虽然主题和演讲者很重要,但确保与会者带着新的想法回家才是最重要的——让它有意义。

我们想听听您的声音

好的,您最多可以在2018年6月8日(下周五)太平洋标准时间晚上11:59之前提交您的演讲。开始行动吧!我们知道您有一些很棒的想法要与APIStrat社区分享。如果您错过了之前的活动,纳什维尔将是您留下印记的地方。前往APIStrat CFP表单,并在准备好时将其添加为书签。

如果您有任何疑问,请随时联系我们——我们很乐意回答您对我们正在寻找的内容的任何问题,并在您之前从未参加过活动的情况下分享之前活动的案例。此外,我们期待着9月份在纳什维尔与大家见面!!

 

向APIStrat指导委员会和项目委员会致敬

作者 公告博客

我们准备在下周结束APIStrat征稿,我们想借此机会向我们组建的指导委员会的优秀阵容致敬,他们正在帮助指导此次活动。以及项目委员会的成员,他们将帮助审查作为CFP流程一部分提交的演讲,并最终制定项目计划。这些人将帮助设定在纳什维尔APIStrat上进行的对话基调,我们非常高兴能得到他们的帮助。

以下是APIStrat指导委员会成员,他们在会议中扮演着不同的领导角色,确保在9月之前完成所有工作

指导委员会

接下来,我们将向项目委员会的19位成员介绍您,您需要用您的演讲稿打动他们,以便您能够在纳什维尔的APIStrat上登台演讲

项目委员会

非常感谢所有参与其中的人。组织这样的活动需要付出很多努力。每个人都参与其中,因为他们相信这项活动以及更广泛的API社区的健康发展。再次重申,我们认为我们已经组建了一支非常优秀的团队,以帮助确保APIStrat充分代表社区,来自各种各样的公司,为该行业提供API和服务。

虽然活动的初级角色已经确定,但仍然有很多机会参与其中。首先,请确保您已提交了您的演讲——您只剩下一周的时间来提交。其次,有赞助机会,我们需要API社区的财政支持才能使活动再次举办。请随时联系我们,我们将看看我们能做些什么来让您参与进来,并成为今年纳什维尔活动的一部分。再次感谢我们的指导委员会和项目委员会成员,我们9月份再见。