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

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

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

TypeSpec 是什么

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

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

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

生成 JSON Schema

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

生成 Protobuf

图片图片FnZ28资讯网——每日最新资讯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 两种视图。FnZ28资讯网——每日最新资讯28at.com

File 视图

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

Swagger UI 视图

图片图片FnZ28资讯网——每日最新资讯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 按钮。FnZ28资讯网——每日最新资讯28at.com

3.创建 TypeSpec 项目

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

tsp init

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

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

4.安装项目依赖

tsp install

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

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

之后,打开 main.tsp 文件,输入以下代码:FnZ28资讯网——每日最新资讯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 文件:FnZ28资讯网——每日最新资讯28at.com

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

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

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

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

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

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

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

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

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

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

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

标签:
  • 热门焦点
  • K60 Pro官方停产 第三方瞬间涨价

    K60 Pro官方停产 第三方瞬间涨价

    虽然没有官方宣布,但Redmi的一些高管也已经透露了,Redmi K60 Pro已经停产且不会补货,这一切都是为了即将到来的K60 Ultra铺路,属于厂家的正常操作。但有意思的是该机在停产之后
  • 帅气纯真少年!日本最帅初中生选美冠军出炉

    帅气纯真少年!日本最帅初中生选美冠军出炉

    日本第一帅哥初一生选美大赛冠军现已正式出炉,冠军是来自千叶县的宗田悠良。日本一直热衷于各种选美大赛,从“最美JK”起到“最美女星&r
  • Java NIO内存映射文件:提高文件读写效率的优秀实践!

    Java NIO内存映射文件:提高文件读写效率的优秀实践!

    Java的NIO库提供了内存映射文件的支持,它可以将文件映射到内存中,从而可以更快地读取和写入文件数据。本文将对Java内存映射文件进行详细的介绍和演示。内存映射文件概述内存
  • 分享六款相见恨晚的PPT模版网站, 祝你做出精美的PPT!

    分享六款相见恨晚的PPT模版网站, 祝你做出精美的PPT!

    1、OfficePLUSOfficePLUS网站旨在为全球Office用户提供丰富的高品质原创PPT模板、实用文档、数据图表及个性化定制服务。优点:OfficePLUS是微软官方网站,囊括PPT模板、Word模
  • 得物效率前端微应用推进过程与思考

    得物效率前端微应用推进过程与思考

    一、背景效率工程随着业务的发展,组织规模的扩大,越来越多的企业开始意识到协作效率对于企业团队的重要性,甚至是决定其在某个行业竞争中突围的关键,是企业长久生存的根本。得物
  • 三言两语说透柯里化和反柯里化

    三言两语说透柯里化和反柯里化

    JavaScript中的柯里化(Currying)和反柯里化(Uncurrying)是两种很有用的技术,可以帮助我们写出更加优雅、泛用的函数。本文将首先介绍柯里化和反柯里化的概念、实现原理和应用
  • 冯提莫签约抖音公会 前“斗鱼一姐”消失在直播间

    冯提莫签约抖音公会 前“斗鱼一姐”消失在直播间

    来源:直播观察提起“冯提莫”这个名字,很多网友或许听过,但应该不记得她是哪位主播了。其实,作为曾经的“斗鱼一姐”,冯提莫在游戏直播的年代影响力不输于现
  • 8月见!小米MIX Fold 3获得3C认证:支持67W快充

    8月见!小米MIX Fold 3获得3C认证:支持67W快充

    这段时间以来,包括三星、一加、荣耀等等有不少品牌旗下的最新折叠屏旗舰都得到了不少爆料,而小米新一代折叠屏旗舰——小米MIX Fold 3此前也屡屡被传
  • 亲历马斯克血洗Twitter,硅谷的苦日子在后头

    亲历马斯克血洗Twitter,硅谷的苦日子在后头

    文/刘哲铭  编辑/李薇  马斯克再次挥下裁员大刀。  美国时间11月14日,Twitter约4400名外包员工遭解雇,此次被解雇的员工的主要工作为内容审核等。此前,T
Top
Baidu
map