Tag: Swagger

在iOS应用中管理环境

对于开发团队来说,每个项目都有多个环境是很常见的事情。 开发人员使用服务器的开发版本。 质量检查先检查开发版本,然后再检查暂存版本,简称为候选发布版本。 然后,所有这些都最终发布。 对于iOS应用程序,您可以在为每种环境创建单独的应用程序以及自定义一个应用程序以提供环境切换选项之间进行选择。 这两种方法都有优点和缺点。 每个环境“ + ”的单独应用: 您可以完全控制每个环境设置 您可以同时安装3–4-N个应用程序,只需在一个应用程序之间切换即可测试它们(无需重新登录或执行任何其他操作) 通过在构建时修改显示名称或图标,您可以轻松了解哪个应用程序实例适用于哪种环境 每个环境“ – ”的单独应用: 您将必须处理每个应用程序的配置文件和证书,并使其保持最新状态 如果您使用推送通知并且仍然不使用通用身份验证密钥,则最终将导致混乱的推送通知证书和沙箱/生产问题 构建版本将很难处理。 每个构建都是唯一的,您将无法检查确切构建在所需环境中的行为。 同时至少3个应用实例。 您添加了另一个环境(具有长期功能)–您将拥有另一个应用程序 Fabric / HockeyApp / TestFlight会很拥挤 现在,让我们看一下“一个应用程序-N环境”方法。 您可以通过在应用程序内部实现自己的模块(通过摇动手势/双击屏幕上的某个位置来调用/只需根据服务器上的策略显示一个按钮)来调用该模块。 或者,您可以简单地使用Settings.bundle和标准应用程序设置。 无论哪种方式,让我们总结一下优缺点。 一个适用于不同环境“ – ”的应用程序: 您将无法同时使用同一应用的多个实例来检查相同的行为 每次环境更改后,您都必须重新登录(即使执行此过程) 如果从开发者切换到产品,反之亦然,推送通知可能仍无法正常工作 Fabric临时版本无法再安装在发布/临时版本上,您必须删除该应用程序的现有实例,然后从Fabric Beta应用程序重新安装 您必须管理发行版本的环境首选项可用性,如果您使用testflight进行登台,这可能会很棘手(有人可能会错误地发布错误的版本) 一个适用于不同环境“ + ”的应用程序: 不用担心配置文件 Appstore Connect和Fabric / HockeyApp中的苗条和简单项目结构 轻松的环境管理(具有预定义的选项和/或URL的自定义选项) 您具有一个长期功能,该功能在开发过程中仍然存在于另一个分支上,仍然需要对其进行测试吗? 只需将新配置添加到您的设置中,然后进行重建即可开始 您可以检查您的开发版本如何与当前的生产API一起使用,或者您的暂存(候选版本)版本将如何管理仍在开发中的新API更改 简单的CI&CD脚本 自定义应用程序模块可以派上用场,但需要一些开发。 让我们关注一种更简单的方法-iOS设置中的应用程序首选项。 首先,您需要为项目创建并注册一个Settings.bundle文件。 […]

如何使Swagger Codegen为您的团队工作

Swagger Codegen是开源API客户端代码生成器,对于您的团队而言,它可以成为功能极其强大,节省时间的协作工具。 与大多数功能强大的工具一样,它可能无法立即满足您的需求。 为了让Swagger Codegen真正为您和您的团队工作,了解Swagger Codegen的工作方式将很有帮助。 但是,首先您可能会问,为什么? “我们鼓励您开发程序员的三大美德: 懒惰,不耐烦和傲慢。” — LarryWall,O’Reilly And Associates的ProgrammingPerl(第一版) 在讨论代码生成工具时,我会一开始就不提拉里·沃尔(Larry Wall)的“程序员的三种美德”。可以为懒惰辩护。 在这种情况下,懒惰由拉里·沃尔(Larry Wall)在其著名的《 编程Perl》一书的词汇表中解释为:“使您尽全力减少总体能源消耗的质量。 它使您可以编写省力的程序,其他人会发现它有用……” 现在,当拉里·沃尔(Larry Wall)赞扬程序员懒惰的优点时,他并不是指偷工减料和做懒惰的事情,例如不编写单元测试。 拉里·沃尔(Larry Wall)对懒惰的定义在任何情况下都不应视为对懒惰的辩护。 但是,如果您正确地做到了“懒惰”,并且希望您在阅读本文后会如此,那么使用Swagger Codegen不仅意味着减少自己的能源消耗,而且还意味着团队中所有成员的能源消耗减少。 您无需编写,维护或担心自动生成的代码的一致性! 您可以节省工作和精力,例如编写有关代码生成的博客。 😇 但是,等等,在我们开始凭空生成代码之前,我们必须谈论作为团队达到目标所需要的东西。 OpenAPI规范(以前称为Swagger规范)是“与RESTful API无关的语言的接口 ”,它使各种精通不同编程语言的开发人员可以以每个人都能理解的方式讨论REST API。 该规范允许开发人员创建合同,该合同定义API的工作方式以及应该在任何人编写一行代码之前执行的操作。 这样一来,将创建并维护API的开发人员及其客户就非常特定的合同达成协议,并说:“如果我将带有这些标头的正文发布到此端点,那么我期望以这种格式进行响应。” 举一个具体的例子,我邀请您查看此PetAPI应用程序的OpenAPI规范。 当您了解有关OpenAPI规范的更多信息时,Pet Store示例就是一个非常熟悉的示例。 这是每个开发人员为每种新语言实现代码生成规则时使用的参考点。 集成测试始终根据OpenAPI Initiative的Github Repo中的OpenAPI规范执行。 简要回顾一下`petstore.yaml`我们可以看到已经定义了一个简单但完整的API。 根据此规范中定义的要求,我们可以实现一个后端服务,该服务返回数据库中所有宠物的列表,或将新宠物写入数据库,然后发布到API。 在前端,我们可以构建与API交互所需的模型,并实现可用于调用端点以获取新宠物或发布新宠物的正确服务。 我们可以做所有的事情……但是作为“懒惰”程序员,我们可以使用Swagger Codegen代替它! 在使用Swagger Codegen之前,您需要在本地安装它。 有多种不同的方式来安装和使用Swagger Codegen。 为了最大程度地控制修改项目以适应我们的需求(并与该博客一起进行),获取Swagger Codegen的最佳方法是克隆整个存储库:https://github.com/ swagger-api / […]