2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

Swift OpenAPI Generator 发布 1.0 稳定版

  • 2024-03-26
    北京
  • 本文字数:827 字

    阅读完需:约 3 分钟

大小:396.50K时长:02:15
Swift OpenAPI Generator发布1.0稳定版

于6个月前开源Swift OpenAPI Generator现已到了稳定版。1.0 版本带来了新特性和简化的 API。


Swift OpenAPI Generator 是一个开源的 Swift 包插件,可用于自动生成访问或实现使用 OpenAPI 描述的 HTTP 端点所需的代码。该插件可以在构建时运行,确保生成的代码始终与 API 的最新 OpenAPI 描述保持一致,并且能够生成用于调用 API 的代码以及用于与相应服务器端服务集成的存根。


1.0 版本带来的新特性包括采用 AsyncSequence 来启用 JSON 事件流和无缓冲的大型负载;支持类型安全的常见内容类型,包括 JSON、多部分、URL 编码等;通过灵活的客户端和服务器端抽象更好地解耦生成的代码。


在客户端,Swift OpenAPI Generator 创建的类可以与支持 ClientTransport 协议的任何 HTTP 框架一起使用。在服务器端,可以兼容任何符合 ServerTransport 协议的 Web 框架。


尽管努力确保API 稳定性,但在修改 OpenAPI 规范后,生成的代码可能会破坏你的程序,你需要修复其使用方式,这可能会影响客户端和服务器端代码。


一般来说,当你修改 OpenAPI 文档来添加新的响应、内容类型、删除必需的属性或重命名模式时,你的 Swift 代码也需要做出修改以适应新生成的代码。


例如,当向现有操作添加新的响应或向现有响应添加新的内容类型时,Swift OpenAPI Generator 将创建一个新的 enum case 来处理它。这意味着所有使用该 enumswitch 语句都需要显式处理这个新 case,这样才能通过编译器检查,除非它们实现了 default case。当然,default case 可以确保你的程序在编译时不会发生中断,但这并不一定意味着它将产生正确的结果。


向现有模式中添加新属性是另一种情况。如果你的代码没有捕获相应 structinit 方法签名,这种修改就不会发生中断。作为一般规则,你不应该在公共 API 中包含生成的代码(包括模式初始化器)。


Swift OpenAPI Generator 1.0 与 OpenAPI 3.0 和 3.1 规范兼容,可在 Swift Package Index 上获得。


原文链接

https://www.infoq.com/news/2024/02/swift-openapi-generator-1-0/

2024-03-26 08:002646

评论

发布
暂无评论
发现更多内容

央行数字货币渐行渐近:未来金融竞争终极场所

CECBC

数字货币 银行

区块链治理为什么如此重要?

CECBC

区块链

组合设计模式编写程序

石头

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

架构师训练营第三周作业

四夕晖

设计模式 极客大学架构师训练营

架构师训练营第一周作业

四夕晖

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

猫切切切切切

极客大学架构师训练营

PHP 7:真实世界的应用开发(中文翻译)

GanymedeNil

php

架构师训练营第三周作业

xs-geek

极客大学架构师训练营

学习笔记:架构师训练营-第三周

四夕晖

设计模式 OOD

架构师训练营第 1 期第三周课后练习题

Leo乐

极客大学架构师训练营

CSS 选择器 — 重学CSS

三钻

CSS 大前端

SQL 是什么

Rayjun

sql

基于链表的有界阻塞队列 —— LinkedBlockingQueue

程序员小航

Java 源码 AQS 源码阅读 LinkedBlockingQueue

2020.09.28-2020.10.04 学习总结

icydolphin

极客大学架构师训练营

第三周-代码重构-作业

刘希文

发展区块链技术 打造竞争新优势

CECBC

【架构师训练营第 1 期 03 周】 作业

Bear

极客大学架构师训练营

架构师训练营 1 期 - 第三周总结(vaik)

行之

极客大学架构师训练营

架构师训练营第 1 期第三周总结

Leo乐

极客大学架构师训练营

3.手写单例模式设计

博古通今小虾米

面试官:开发过Maven插件吗?我:开发过啊。。。

冰河

maven 插件开发 互联网工程

架构师训练营 1 期 -- 第三周作业

曾彪彪

极客大学架构师训练营

架构师训练营第三周课程笔记及心得

Airs

单例设计模式之枚举实现

A p7+

编程的本质和未来

小宋头

架构师训练营 1 期 - 第三周作业(vaik)

行之

极客大学架构师训练营

学习笔记:架构师训练营-第一周

四夕晖

4+1架构视图 通用设计模型

Mac 配置环境变量未生效

hepingfly

Mac 环境变量 配置文件不生效

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

Todd-Lee

极客大学架构师训练营

架构师训练营第三周总结

xs-geek

极客大学架构师训练营

Linux安装软件方法总结

MySQL从删库到跑路

Linux 源码 RPM安装 安装 yum

Swift OpenAPI Generator发布1.0稳定版_Android/iOS_Sergio De Simone_InfoQ精选文章