SwaggerHub 团队最近前往德克萨斯州奥斯汀参加 DockerCon 2017。 DockerCon 是世界上最大的容器技术大会,汇集了来自 Docker 社区的 5000 多名开发人员、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 方法的原因是,与转向设计优先的方法相比,它能更快地实现。自动化在代码优先的方法中更容易实现这一事实有助于加强这种情况,因为许多库支持搭建服务器代码、功能测试和部署自动化。 了解更多:[免费下载] 如何向现有 API 添加 Swagger
3. 样式一致性是 API 团队日益严重的问题
无论您的团队使用哪种架构来实现软件系统,如果您的团队认真对待 良好的 API 开发人员体验,您可能会有一些指导方针供您的团队遵循。但是,当我们与个人谈论他们如何执行这些指导方针时,很明显仍然有改进的空间。 我们从讨论中听到的四个常见趋势是:
- 跟踪所有正在处理的 Swagger 文件
- 处理现有 API 的版本控制
- 在整个开发人员团队中强制执行样式指导方针
- 使跨多个服务重用通用设计对象更容易
SwaggerHub 的构建旨在解决这些挑战,它为您的整个团队提供了一个集中场所,以便在 Swagger 上跨 API 的生命周期工作,同时使用域和样式验证器推动 API 设计的一致性和可重用性。 样式验证器 确保您的 RESTful 接口符合基于组织要求的标准蓝图。这可能意味着确保所有接口都具有驼峰式运算符、在其响应数据包中定义的示例,或者其模型在本地定义。在 域中,您可以存储通用的、可重用的语法,无论是模型还是请求-响应对象,这些语法都可以快速引用跨多个 API,这些 API 会公开您的微服务业务功能。
4. API 管理解决方案在微服务架构中发挥着重要作用,但设计是急需的解决方案
API 管理解决方案在微服务的编排中发挥着重要作用。凭借安全、监控、分析和发现的机制,这些平台有助于处理作为微服务架构一部分的众多 API。 但是,尽管许多 API 管理解决方案提供设计功能,但对 API 设计专用工具集的需求也变得清晰起来。 良好的 API 设计 对于任何面向公共或私有的 API 都很重要。正如一位 Swagger 用户在我们展位上的一次讨论中所说:“您需要为内部团队处理您的 API 提供与外部开发人员相同的质量体验。” 当您设置了样式指导方针时,您需要一个工具来为您的 API 设计提供一流的处理。对于 Swagger 早期阶段的团队,诸如 Swagger Editor 之类的开源工具可以提供编写和更新定义所需的工具。对于需要将设计与 API 管理平台无缝集成的高级团队,诸如 SwaggerHub 之类的完全集成平台可以提供帮助。
5. API 团队需要更好的方式来托管和管理 API 文档
无论您是使用 API 公开服务,还是在您自己的软件架构中,拥有最新且易于访问的文档都非常重要。这也是我们听到团队开始实施 Swagger 的首要原因。但是,当您的 API 文档从一个团队内的几个不同版本增加到几十甚至几百个不同的 API 时,维护这些文档可能会成为一个问题。 我们从 Swagger 用户那里听到的一个常见解决方案是在 GitHub 或 Bitbucket 等源代码控制主机上托管文档。虽然这些工具非常适合托管源代码,但它们仍然不能让您在一个中心位置轻松访问所有可用的不同文档。因此,大多数团队会寻找内部解决方案来解决这个问题。 我们致力于在 SwaggerHub 中提供替代解决方案,让您可以从一个集中托管的平台托管和维护所有 API 的文档。SwaggerHub 可以作为您组织的内部 API 目录,能够管理隐私、发布和取消发布版本,甚至可以使用我们的企业计划在您自己的服务器上托管。 在此处了解更多信息。 感谢今年在 DockerCon 活动中光临 SwaggerHub 展位的每一个人!如果您有兴趣开始使用 SwaggerHub,您可以在此处免费注册。或者联系团队以解答您的问题:[email protected]