当前位置:首页 > 科技  > 软件

受 TypeScript 启发,微软又搞了一个神器!

来源: 责编: 时间:2024-04-07 17:06:23 320观看
导读TypeSpec 是什么TypeSpec[1] 是一种高度可扩展的语言,可轻松描述 REST、OpenAPI、gRPC 和其他协议中常见的 API 结构。TypeSpec 在生成多种不同的 API 描述格式、客户端和服务端代码、文档等方面表现出色。有了 TypeSp

TypeSpec 是什么

图片s2V28资讯网——每日最新资讯28at.com

TypeSpec[1] 是一种高度可扩展的语言,可轻松描述 REST、OpenAPI、gRPC 和其他协议中常见的 API 结构。TypeSpec 在生成多种不同的 API 描述格式、客户端和服务端代码、文档等方面表现出色。有了 TypeSpec,你就可以摆脱那些拖慢你速度的手写文件,并在几秒钟内生成符合标准的 API Schemas。s2V28资讯网——每日最新资讯28at.com

TypeSpec 的特点

  • 简洁轻量:受 TypeScript 的启发,TypeSpec 是一种极简语言,可帮助开发人员以熟悉的方式描述 API。
  • 易集成:编写 TypeSpec,发布为各种格式,快速与其它生态系统集成。
  • 支持多种协议:TypeSpec 标准库支持主流的 OpenAPI 3.0,JSON Schema 2020-12,Protobuf,和 JSON RPC 等协议。
  • 功能强大:受益于庞大的 OpenAPI 工具生态系统,可用于配置 API 网关、生成代码和验证数据。
  • 保证数据一致性:定义要在 API 中使用的通用模型,使用 JSON Schema 发射器获取类型的 JSON Schema,并使用它们验证数据。
  • 友好的开发体验:在 VSCode 和 Visual Studio 编辑器中为了 TypeSpec 提供了全面的语言支持。比如,语法高亮、代码补全等功能。

TypeSpec 使用示例

生成 OpenAPI 描述文件

图片图片s2V28资讯网——每日最新资讯28at.com

生成 JSON Schema

图片图片s2V28资讯网——每日最新资讯28at.com

生成 Protobuf

图片图片s2V28资讯网——每日最新资讯28at.com

TypeSpec Playground

要快速体验 TypeSpec 的功能,推荐你使用 TypeSpec 官方提供的 playground[2]。该 playground 预设了 API versioning、Discriminated unions、HTTP service、REST framework、Protobuf Kiosk 和 Json Schema 6 个不同的使用示例,并支持 File 和 Swagger UI 两种视图。s2V28资讯网——每日最新资讯28at.com

File 视图

图片图片s2V28资讯网——每日最新资讯28at.com

Swagger UI 视图

图片图片s2V28资讯网——每日最新资讯28at.com

TypeSpec 快速上手

1.安装 @typespec/compiler 编译器

npm install -g @typespec/compiler

2.安装 VSCode 扩展

在 VSCode 中搜索 TypeSpec 安装 TypeSpec for VS Code 扩展,或在浏览器中打开 TypeSpec for VS Code[3] 网址后点击 Install 按钮。s2V28资讯网——每日最新资讯28at.com

3.创建 TypeSpec 项目

首先新建一个新的目录,然后在项目的根目录下执行以下命令:s2V28资讯网——每日最新资讯28at.com

tsp init

图片图片s2V28资讯网——每日最新资讯28at.com

图片图片s2V28资讯网——每日最新资讯28at.com

4.安装项目依赖

tsp install

成功执行上述命令后,在当前目录下会生成以下目录结构:s2V28资讯网——每日最新资讯28at.com

.├── main.tsp├── node_modules├── package-lock.json├── package.json└── tspconfig.yaml

之后,打开 main.tsp 文件,输入以下代码:s2V28资讯网——每日最新资讯28at.com

import "@typespec/http";using TypeSpec.Http;@service({  title: "Widget Service",})namespace DemoService;model Widget {  @visibility("read", "update")  @path  id: string;  weight: int32;  color: "red" | "blue";}@errormodel Error {  code: int32;  message: string;}@route("/widgets")@tag("Widgets")interface Widgets {  @get list(): Widget[] | Error;  @get read(@path id: string): Widget | Error;  @post create(...Widget): Widget | Error;  @patch update(...Widget): Widget | Error;  @delete delete(@path id: string): void | Error;  @route("{id}/analyze") @post analyze(@path id: string): string | Error;}

完成输入后,运行 tsp compile . 命令执行编译操作。成功编译后,在 tsp-output/@typespec/openapi3 目录下就会生成 openapi.yaml 文件:s2V28资讯网——每日最新资讯28at.com

图片图片s2V28资讯网——每日最新资讯28at.com

有关 TypeSpec 的相关内容就介绍到这里,如果你想进一步了解 TypeSpec 的基础使用和高级用法,推荐你阅读官方的使用文档[4]。s2V28资讯网——每日最新资讯28at.com

参考资料s2V28资讯网——每日最新资讯28at.com

[1]TypeSpec: https://typespec.io/s2V28资讯网——每日最新资讯28at.com

[2]playground: https://typespec.io/playgrounds2V28资讯网——每日最新资讯28at.com

[3]TypeSpec for VS Code: https://marketplace.visualstudio.com/items?itemName=typespec.typespec-vscodes2V28资讯网——每日最新资讯28at.com

[4]使用文档: https://typespec.io/docss2V28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-81739-0.html受 TypeScript 启发,微软又搞了一个神器!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: SpringSecurity保护了什么?你知道吗?

下一篇: 重磅榜单:去年赚钱的编程语言前十名

标签:
  • 热门焦点
  • 7月安卓手机性价比榜:努比亚+红魔两款新机入榜

    7月登场的新机有努比亚Z50S Pro和红魔8S Pro,除了三星之外目前唯二的两款搭载超频版骁龙8Gen2处理器的产品,而且努比亚和红魔也一贯有着不错的性价比,所以在本次的性价比榜单
  • 6月安卓手机性价比榜:Note 12 Turbo断层式碾压

    6月份有一个618,虽然这是京东周年庆的日子,但别的电商也都不约而同的跟进了,反正促销没坏处,厂商和用户都能满意。618期间一些产品也出现了历史低价,那么各个价位段的产品性价比
  • Rust中的高吞吐量流处理

    作者 | Noz编译 | 王瑞平本篇文章主要介绍了Rust中流处理的概念、方法和优化。作者不仅介绍了流处理的基本概念以及Rust中常用的流处理库,还使用这些库实现了一个流处理程序
  • 一文搞定Java NIO,以及各种奇葩流

    大家好,我是哪吒。很多朋友问我,如何才能学好IO流,对各种流的概念,云里雾里的,不求甚解。用到的时候,现百度,功能虽然实现了,但是为什么用这个?不知道。更别说效率问题了~下次再遇到,
  • 年轻人的“职场羞耻感”,无处不在

    作者:冯晓亭 陶 淘 李 欣 张 琳 马舒叶来源:燃次元“人在职场,应该选择什么样的着装?”近日,在网络上,一个与着装相关的帖子引发关注,在该帖子里,一位在高级写字楼亚洲金
  • 3699元!iQOO Neo8 Pro顶配版今日首销:1TB UFS 4.0同价位唯一

    5月23日,iQOO推出了全新的iQOO Neo8系列,包含iQOO Neo8和iQOO Neo8 Pro两个版本,其中标准版搭载高通骁龙8+,而Pro版更是首发搭载了联发科天玑9200+旗舰
  • 联想YOGA 16s 2022笔记本将要推出,屏幕支持触控功能

    联想此前宣布,将于11月2日19:30召开联想秋季轻薄新品发布会,推出联想 YOGA 16s 2022 笔记本等新品。官方称,YOGA 16s 2022 笔记本将搭载 16 英寸屏幕,并且是一
  • 上海举办人工智能大会活动,建设人工智能新高地

    人工智能大会在上海浦江两岸隆重拉开帷幕,人工智能新技术、新产品、新应用、新理念集中亮相。8月30日晚,作为大会的特色活动之一的上海人工智能发展盛典人工
  • 电博会与软博会实现"线下+云端"的双线融合

    在本次“电博会”与“软博会”双展会利好条件的加持下,既可以发挥展会拉动人流、信息流、资金流实现快速交互流动的作用,继而推动区域经济良性发展;又可以聚
Top