网易首页 > 网易号 > 正文 申请入驻

TypeSpec:一种受TypeScript启发的实用的API定义语言

0
分享至

作者 | Eran Stiller

译者 | 平川

策划 | Tina

最近,微软工程师正式发布了 TypeSpec。这是一种新语言,专门为以 API 为中心的开发量身定制,可以解决现代 API 设计的复杂需求。TypeSpec 是一种开源、可扩展的语言,其灵感来自 TypeScript 和 C#。它支持各种协议和序列化格式,使开发人员使用一个工具就可以管理多种 API 规范。

TypeSpec 使用支持的协议或序列化格式描述 API。它采用了简洁的语法,并提供了 Visual Studio 和 VS Code 编辑器工具。使用 TypeSpec,开发人员可以将常见的数据类型、API 模式和 API 指南封装到高层可重用组件中,实现跨团队或生态系统共享。

示例:TypeSpec 规范及生成的 OpenAPI schema(来源)

定义好规范之后,开发人员就可以将其编译为符合标准的 OpenAPI、JSON Schema、Protobuf 或三者同时。

该语言具有很高的可扩展性,支持自定义修饰词表和类型模板,使开发人员可以根据特定的业务或应用程序逻辑域定制 API。TypeSpec 还允许通过 NPM 创建和分发包,从而促进生态系统的发展。这些包既可以在组织内部使用,也可以在更广泛的开发社区里共享。

在微软内部,TypeSpec 得到了积极应用,尤其是 Azure 服务和 Microsoft Graph 团队。通过在开发过程中使用 TypeSpec,微软工程师提高了在其他实际场景中使用 TypeSpec 进行 API 开发的可靠性和效率。

Brian Terlson 是微软 Azure 开发体验首席软件架构师,也是 TypeSpec 和 Azure JavaScript SDK 的架构师。自 2019 年以来,他就一直在从事与 TypeSpec 相关的工作。Brian 说:“由于我们一直在对 TypeSpec 进行迭代和改进,所以我们认为现在是时候从更广泛的 API 开发社区获得更多的反馈了。”他指出,TypeSpec 团队”渴望得到更多的反馈,从而更好地理解 1.0 版本应该优先提供什么。”

InfoQ 采访了 Terlson,谈了 TypeSpec、它的价值主张以及它与其他类型定义语言的区别。

InfoQ:市面上已经有多种接口描述语言(IDL),为什么还要新发明一种语言呢?TypeSpec 的主要创新点是什么?

Brian Terlson:TypeSpec 源于我们在 Azure 中大规模交付服务的经验。在这种情况下,服务和团队很多,我们需要一个解决方案来帮助开发人员快速创建一致的高质量 API。

TypeSpec 有几个方面是独一无二的。首先,我们将重点放在了支持 API 抽象上,为的是 API 设计人员可以构建可重用 API 组件库。在规模很大时,这一点很重要。在 Azure,我们广泛依赖于这一点,降低开发成本、审查成本和服务规范的复杂性,同时提高 API 质量和一致性。

其次,TypeSpec 是协议无关的。它支持随库添加的特定协议或序列化格式。这使得 TypeSpec 可以作为不止一个协议的单一事实来源。开发人员和应用程序越来越多地使用多语言,在涉及跨多种语言和协议的实现时,这一点尤其有价值。

最后是开发人员熟悉度:TypeSpec 的灵感来自现有的语言,主要是 TypeScript,也有 C#,所以许多开发人员都会觉得我们的语言是他们所熟悉的。此外,在扩展性和打包方面,我们使用了 JavaScript,它带来了强大的功能,而且不需要开发人员学习新东西。

InfoQ:TypeSpec 为软件架构师提供的基本价值主张是什么?

Terlson:TypeSpec 的目标是降低构建和使用 API 的成本,使它们更实用。优先构建 API,可以带来许多可扩展性和 API 质量方面的优势。

API 优先的方法支持跨若干应用程序栈的生成代码,并将流程中的审查和治理职责前移,提高了可扩展性,降低了变更成本。

此外,它还能够将常见的 API 外形抽象为可重用的组件,使开发人员可以做最简单的事,使架构师可以做正确的事,两者实现了有效的统一。在这两种情况下都应该使用组件。

TypeSpec 还致力于实现与 OpenAPI 等 API 描述格式的互操作。因此,在现有的工具链上就可以获得这些好处。

InfoQ:TypeSpec 未来几年的愿景是什么?

Terlson:现在,我们正在努力构建 1.0 的稳定版本,包括将 Azure SDK 的代码生成技术转移到 TypeSpec 项目中,希望社区在此之前继续为我们提供反馈。

对于这项技术,我们感到非常自豪。人们开始使用它生成 API 客户端和服务器,我们为此感到兴奋。

我们将继续构建这门语言,比如使其能够定义特定的值,并使用这些值来定义诸如 API 示例之类的东西。我们还添加了新的库特性,比如定义流和事件 API,以支持服务器发送事件和流式 JSONL 等。

长远来看,在很大程度上,我们的工作取决于我们从社区获得的反馈。我们希望在语言中添加更多的功能用于描述新的 API 类型,扩展标准库从而支持新的协议、序列化格式和标准数据形状,并进行代码生成方面的创新,使它可以在软件生态系统的更多地方使用。

欢迎访问我们的 GitHub(https://github.com/microsoft/typespec),告诉我们你的想法!

https://www.infoq.com/news/2024/05/typespec/

声明:本文为 InfoQ 翻译,未经许可禁止转载。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
国乒备战名单生变,两大老将无缘!解说员:他们已经开辟新赛道

国乒备战名单生变,两大老将无缘!解说员:他们已经开辟新赛道

体育见习官
2026-01-31 16:46:17
承担输球责任!姆巴佩向高层认错,抱怨没有帮手,夏窗或开启清洗

承担输球责任!姆巴佩向高层认错,抱怨没有帮手,夏窗或开启清洗

阿泰希特
2026-01-31 11:10:39
国家下狠手了!体制内大地震,少爷、公主们的“天”,要塌了

国家下狠手了!体制内大地震,少爷、公主们的“天”,要塌了

霹雳炮
2026-01-19 22:24:13
太残暴!白银史诗级大崩盘,大v做空1天赚120万?分析师:金属盛宴结束

太残暴!白银史诗级大崩盘,大v做空1天赚120万?分析师:金属盛宴结束

金石随笔
2026-01-31 09:58:47
美翻!37岁张帅身披国旗庆祝大满贯第3冠 获主场待遇+全场喊加油

美翻!37岁张帅身披国旗庆祝大满贯第3冠 获主场待遇+全场喊加油

我爱英超
2026-01-31 11:35:09
分手14年,释小龙何洁境遇天差地别,一个身家过亿,一个养不起娃

分手14年,释小龙何洁境遇天差地别,一个身家过亿,一个养不起娃

查尔菲的笔记
2026-01-09 22:17:44
江苏省政协最新任命名单

江苏省政协最新任命名单

无线徐州
2026-01-31 15:26:12
现货白银重挫25% 现货黄金跌超10%

现货白银重挫25% 现货黄金跌超10%

财联社
2026-01-31 01:56:33
原来有这么多工作需要保密!网友:牺牲12年的爸爸竟然回来了!

原来有这么多工作需要保密!网友:牺牲12年的爸爸竟然回来了!

另子维爱读史
2026-01-16 18:29:22
今天凌晨2点,断桥上全是人!“杭州好久没下这么大的雪了……”

今天凌晨2点,断桥上全是人!“杭州好久没下这么大的雪了……”

都市快报橙柿互动
2026-01-31 09:22:59
船记不满裁判无哨看回放!美球迷直言小哈三罚毁一切:4-16崩盘

船记不满裁判无哨看回放!美球迷直言小哈三罚毁一切:4-16崩盘

颜小白的篮球梦
2026-01-31 13:14:35
永远不可能被抹杀的历史:四野部队里的那三万日籍士兵

永远不可能被抹杀的历史:四野部队里的那三万日籍士兵

深度报
2026-01-21 21:25:16
任正非没想到,高调官宣喜讯的姚安娜,竟凭一个举动再次给他长脸

任正非没想到,高调官宣喜讯的姚安娜,竟凭一个举动再次给他长脸

一娱三分地
2026-01-31 16:08:25
心梗去世逐年增多?医生:牢记“3不喝、2不吃、1坚持”,别大意

心梗去世逐年增多?医生:牢记“3不喝、2不吃、1坚持”,别大意

袁医生课堂
2026-01-24 17:33:06
日本羽毛球界再次诞生超级美少女,韩媒疯狂报道

日本羽毛球界再次诞生超级美少女,韩媒疯狂报道

随波荡漾的漂流瓶
2026-01-22 12:00:14
天津小伙接29岁离婚表嫂同居后续:表嫂正脸照流出曝更多离婚内幕

天津小伙接29岁离婚表嫂同居后续:表嫂正脸照流出曝更多离婚内幕

削桐作琴
2026-01-28 18:17:22
还是做好准备吧,一美元只能兑换5.5元人民币时代,或许终会到来

还是做好准备吧,一美元只能兑换5.5元人民币时代,或许终会到来

娱乐八卦木木子
2026-01-31 10:52:14
暴跌60%,引来全国牙科关店潮,暴利的牙科生意真的走到了尽头?

暴跌60%,引来全国牙科关店潮,暴利的牙科生意真的走到了尽头?

小熊侃史
2026-01-17 07:50:11
金晨道歉一举三得!晒脸部受伤照有玄机,3大细节对不上惹质疑!

金晨道歉一举三得!晒脸部受伤照有玄机,3大细节对不上惹质疑!

古希腊掌管月桂的神
2026-01-30 18:28:50
演员金晨道歉后,喜之郎悄悄恢复被隐藏的内容、娇韵诗微博置顶换成迪丽热巴,阿迪达斯宣布金晨仍为其代言人

演员金晨道歉后,喜之郎悄悄恢复被隐藏的内容、娇韵诗微博置顶换成迪丽热巴,阿迪达斯宣布金晨仍为其代言人

扬子晚报
2026-01-31 10:31:01
2026-01-31 17:44:49
InfoQ incentive-icons
InfoQ
有内容的技术社区媒体
12009文章数 51728关注度
往期回顾 全部

科技要闻

中国车企和特斯拉的下一战,战场已定

头条要闻

正部级王祥喜任上被查 4天前曾主持会议

头条要闻

正部级王祥喜任上被查 4天前曾主持会议

体育要闻

新时代得分王!东皇37+三双刷7纪录怒吼释放

娱乐要闻

成龙入驻小红书,怼脸近照没有老年斑

财经要闻

白银,暴跌!黄金,40年最大跌幅!

汽车要闻

新款宾利欧陆GT S/GTC S官图发布 V8混动加持

态度原创

时尚
旅游
艺术
本地
军事航空

2026巴黎高定时装周|全世界最美的衣服都在这了

旅游要闻

科技光影碰撞戏剧年味!乌镇60余项新年活动打造新春新体验

艺术要闻

王羲之17米行书问世,体量超20部《兰亭序》

本地新闻

云游中国|拨开云雾,巫山每帧都是航拍大片

军事要闻

轰-6k在黄岩岛战备警巡示意图公布

无障碍浏览 进入关怀版