SwaggerHub 团队最近前往德克萨斯州奥斯汀参加 DockerCon 2017 大会。 DockerCon 是全球最大的容器技术大会,汇聚了来自 Docker 社区的 5,000 多名开发人员、DevOps 工程师、系统管理员及其他相关人员
是什么让我们今年来到了 DockerCon?
在过去的一年里,我们看到投资微服务架构的软件团队对 SwaggerHub 平台 的使用率大幅增长。 在为期三天的大会期间,我们与处于 微服务 和 API 采用不同阶段的人们进行了数百次对话。很高兴听到有这么多人使用 Swagger 工具和 OpenAPI 规范来帮助实现他们的微服务架构,并且我们也更多地了解到如何继续改进 SwaggerHub 以满足 API 团队的需求。 作为今年活动的后续,我们想分享一些我们在 DockerCon 2017 大会上交流中学到的重要见解。
1. OpenAPI (Swagger) 规范在转向微服务中扮演着重要角色
从单体应用转向微服务架构的组织通常依赖 API 来暴露服务以实现相互通信。为了更好地通过 API 暴露服务,需要存在一个通用的 API 接口来准确说明每个服务的功能。 OpenAPI (Swagger) 规范 (OAS) 已成为定义此契约的标准格式,它提供了一个通用接口,以人类和机器可读的方式定义了客户端和服务之间的 SLA。对于我们在 DockerCon 大会期间交流过的团队来说,使用 OAS 定义 API 的主要用例是为内部团队生成必要的 API 文档,其中 Swagger UI 是该规范最流行的实现。
2. 大多数团队仍遵循“代码优先”的 API 开发方法
关于“设计优先”的 API 开发方法 或 构建微服务 的方法,已经有很多文章论述了其优点。 “设计优先”方法首先涉及设计和定义微服务的接口,然后审查和稳定该契约,最后实现服务。 但尽管“设计优先”可能是理想的,我们交谈过的大多数团队仍在使用“代码优先”方法,他们结合使用一些开源工具从现有 API 生成 Swagger 文件——无论是在运行时还是构建时。 对于我们交谈过的大多数人来说,采用“代码优先”的 Swagger 方法是因为它比转向“设计优先”方法实现起来要快得多。代码优先方法中自动化更容易的事实有助于强化这一论点,许多库都支持生成服务器代码、功能测试和部署自动化。 了解更多:[免费下载] 如何将 Swagger 添加到现有 API
3. 样式一致性是 API 团队日益增长的问题
无论您的团队使用何种架构来实现软件系统,如果您的团队重视良好的 API 开发者体验,您可能都会为团队制定一些指导方针。但当我们与个人讨论他们如何执行这些指导方针时,很明显仍有改进空间。 我们在讨论中听到的四个常见趋势是:
- 跟踪所有正在处理的 Swagger 文件
- 处理现有 API 的版本控制
- 在整个开发团队中强制执行样式指南
- 使在多个服务中重用通用设计对象变得更容易
SwaggerHub 的构建旨在解决这些挑战,它为您的整个团队提供一个中心位置,通过 Swagger 在 API 的整个生命周期中进行协作,同时利用域和样式验证器 (Style Validator) 提高 API 设计的一致性和可重用性。 样式验证器 (Style Validator) 可确保您的 RESTful 接口符合根据您的组织要求制定的标准蓝图。这可能意味着确保所有接口都具有驼峰命名法运算符、响应包中定义了示例,或者模型已在本地定义。在 域 (Domains) 中,您可以存储常见的、可重用的语法,无论是模型还是请求-响应对象,这些语法都可以在暴露您的微服务业务能力的多个 API 中快速引用。
4. API 管理解决方案在微服务架构中扮演着重要角色,但设计是一个非常需要的解决方案
API 管理解决方案在微服务编排中扮演着重要角色。凭借安全、监控、分析和发现机制,这些平台有助于处理作为微服务架构一部分的大量 API。 然而,尽管许多 API 管理解决方案提供设计功能,但对专用 API 设计工具集的需求也变得清晰起来。良好的 API 设计 对于任何面向公共或内部的 API 都很重要。正如一位 Swagger 用户在我们的展位上讨论时所说:“您需要为处理您的 API 的内部团队提供与外部开发者相同的优质体验。” 当您设置了样式指南后,您需要一个能够为您的 API 设计提供一流处理的工具。对于刚开始使用 Swagger 的团队,像 Swagger Editor 这样的开源工具可以提供编写和更新定义所需的工具。对于需要将设计与其 API 管理平台无缝集成的专业团队,像 SwaggerHub 这样的完全集成平台可以提供帮助。
5. API 团队需要更好的方式来托管和管理 API 文档
无论您是使用 API 公开服务,还是在您自己的软件架构内部使用 API,拥有最新且易于访问的文档都非常重要。这是我们听到团队最初开始实施 Swagger 的最大原因。但是当您的 API 文档从一个团队内部的几个不同版本发展到数十甚至数百个不同的 API 时,维护这些文档可能会成为一个问题。 我们从 Swagger 用户那里听到的一个常见解决方案是将文档托管在 GitHub 或 Bitbucket 等源代码管理平台上。但是,尽管这些工具非常适合托管源代码,但它们仍然无法轻松地从一个中心位置访问您拥有的所有不同文档。因此,大多数团队会转而寻找内部解决方案。 我们致力于在 SwaggerHub 中提供替代解决方案,让您可以在一个集中托管的平台上托管和维护所有 API 文档。SwaggerHub 可以作为您组织的内部 API 目录,具备管理隐私、发布和取消发布版本的能力,甚至可以通过我们的企业版计划在您自己的服务器上托管。 在此了解更多。 感谢所有在今年 DockerCon 活动中莅临 SwaggerHub 展位的朋友!如果您有兴趣开始使用 SwaggerHub,可以在此处免费注册。或者联系团队以获得问题解答:[email protected]