【ArchSummit架构师峰会】基于大模型的基础框架、中台、应用层等专题全覆盖 >>> 了解详情
写点什么

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

评论

发布
暂无评论

使用Grafana显示Prometheu监控

Rubble

Grafana Prometheus 8月日更

容器最佳实践系列-查看docker的文件系统

混沌畅想

TCP如何进行拥塞控制

W🌥

计算机网络 TCP/IP 8月日更

kubernetes入门:dashboard可视化界面部署springboot项目

小鲍侃java

8月日更

听说你对explain 很懂?

艾小仙

sql 大前端

手撸二叉树之二叉搜索树中的搜索

HelloWorld杰少

数据结构与算法 8月日更

【“互联网+”大赛华为云赛道】EI命题攻略:华为云EI的能力超丰富,助你实现AI梦想

华为云开发者联盟

大数据 modelarts 大赛 互联网+ 华为云EI

带你看论文丨全局信息对于图网络文档解析的影响

华为云开发者联盟

文档 CNN网络 图网络 非结构化文档 全局信息

The Data Way Vol.1|风口下的开源市场:如何看待开源与商业的关系?

SphereEx

数据库 开源

Python代码阅读(第7篇):列表分组计数

Felix

Python 编程 Code Programing 阅读代码

netty系列之:中国加油

程序那些事

Java Netty nio 程序那些事

十万高层齐卸甲,竟无一人有慈心。前阿里员工看阿里高管不法侵害女员工事件

刘悦的技术博客

阿里巴巴 面试 职场 职场 PUA

vivo 全球商城:优惠券系统架构设计与实践

vivo互联网技术

服务器 架构设计

万字长文讲透低代码

百度开发者中心

最佳实践 开发者 方法论 低代码 语言 & 开发

Apache之道在腾讯的探索与实践

腾源会

Apache 开源 腾源会 腾讯开源

oeasy教您玩转vim - 11 - # 向前向后

o

【Flutter 专题】73 图解自定义 ACECheckBox 复选框

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

设计电商秒杀系统

thewangzl

【“互联网+”大赛华为云赛道】IoT命题攻略:仅需四步,轻松实现场景智能化设计

华为云开发者联盟

IoT 华为云 LiteOS 互联网+ IoT边缘

从技术到文案,还回技术么?

escray

学习 极客时间 朱赟的技术管理课 8月日更

字节跳动《实时音视频通讯技术》学习笔记之RTC概述及技术简介

Regan Yue

音视频 RTC 8月日更

十大排序算法--桶排序

Ayue、

排序算法 8月日更

AI + K8S 驱动存储技术变革

焱融科技

人工智能 Kubernetes 云原生 高性能 存储

工作多年,分享16条职场经验给新人朋友

架构精进之路

职场 成长 经验分享 8月日更

简单的Postman,还能玩出花?

码农参上

8月日更

你真的懂语音特征吗?

华为云开发者联盟

语音 音频 声学 时域图 时域

从0开始的TypeScriptの二:类型系统

空城机

JavaScript typescript 8月日更

浅谈BU安全建设

I

项目管理 企业安全 BU安全 安全建设

iPhone Shortcuts 使用与场景

TroyLiu

iphone 效率工具 快捷指令 shortcuts nfc

Compose 编程思想

Changing Lin

8月日更

Docker新手FAQ系列 1

混沌畅想

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