写点什么

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:002488

评论

发布
暂无评论

Hyperledger(超级账本)的worldstate和SAP CRM的CRMD_CUMULAT_H

汪子熙

超级账本 hyperledger 三周年连更

新技术加持下前端开发工程师的未来在哪里?| 社区征文

No Silver Bullet

前端开发 新技术 三周年征文

麻了,不要再动不动就BeanUtil.copyProperties

JAVA旭阳

Java 架构设计

Nacos 2.2.2 发布,优化启动体验和鉴权提示

阿里巴巴云原生

阿里云 云原生 nacos

Spring Data开发手册|手摸手教你简化持久层开发工作

浅羽技术

Java spring springdata 框架 三周年连更

跨平台应用开发进阶(四十六)webview方式嵌套H5应用加载慢解决方案

No Silver Bullet

webview 解决方案 跨平台应用开发 三周年连更

Java面向对象编程中级

timerring

Java

AI日课@20230415:Stable Diffusion入门学习;ChatGPT的成本计算

无人之路

ChatGPT

MySQL数据文件被误删,如何进行恢复?

架构精进之路

MySQL 数据库 三周年连更

Go语言开发小技巧&易错点100例(五)

闫同学

三周年连更

【云原生】Docker—Dockerfile写法与用法以及dockerfile简介与构建镜像详解【附加实战】

A-刘晨阳

Linux Dockerfile 三周年连更

Fragment基本概述

梦笔生花

API Fragment 三周年连更

如何锁住文件 | python小知识

AIWeker

Python python小知识 三周年连更

不用写一行代码,就能生成web服务完整项目代码,服务端也可以低代码开发

vison

Go Web crud gin 代码自动生成

详解更新缓存的五种组合方式

穿过生命散发芬芳

缓存 三周年连更

RESTful API类渗透测试要点

阿泽🧸

RESTful API 三周年连更

现代硬件技术的发展与未来趋势

海拥(haiyong.site)

三周年连更

基于 RocketMQ Connect 构建数据流转处理平台

阿里巴巴云原生

阿里云 RocketMQ 云原生

【体验有奖】 玩转 AIGC,Serverless 一键部署 AI 图像生成服务

阿里巴巴云原生

阿里云 Serverless 云原生

Spider实战系列-爬取鬼吹灯小说

浅辄

案例分享 三周年连更

什么是划分子网?网络工程师划分子网有啥技巧?

wljslmz

子网划分 三周年连更

连Hibernate技术都不清楚,你敢说你自己会ORM框架?

浅羽技术

Java hibernate 框架 ORM框架 三周年连更

软件测试/测试开发丨Python 算法与数据结构面试题

测试人

Python 软件测试 面试题 自动化测试 测试开发

【坚果派-坚果】OpenHarmony Native开发【一】

坚果

OpenHarmony 三周年连更 napi

Java房屋出租系统

timerring

Java

JS字符串的截取出现的bug

格斗家不爱在外太空沉思

JavaScript ES6 三周年连更

Meetup 直播预告|助力企业数字化转型,8 大微服务&容器开源实践亮点抢先看

阿里巴巴云原生

阿里云 开源 容器 微服务 云原生

基于Mac M1玩转AI绘图

IT蜗壳-Tango

三周年连更

3d渲染和动画制作:KeyShot Pro mac中文版

真大的脸盆

Mac Mac 软件 渲染器 动画制作 渲染工具

Go 也能实现 “继承”?

陈明勇

Go golang 继承 三周年连更

Unity 之 后处理实现界面灰度效果(PostProcessing实现 | Shader实现)

陈言必行

Unity 三周年连更

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