成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

受 TypeScript 啟發,微軟又搞了一個神器!

開發 前端
TypeSpec[1] 是一種高度可擴展的語言,可輕松描述 REST、OpenAPI、gRPC 和其他協議中常見的 API 結構。TypeSpec 在生成多種不同的 API 描述格式、客戶端和服務端代碼、文檔等方面表現出色。

TypeSpec 是什么

圖片

TypeSpec[1] 是一種高度可擴展的語言,可輕松描述 REST、OpenAPI、gRPC 和其他協議中常見的 API 結構。TypeSpec 在生成多種不同的 API 描述格式、客戶端和服務端代碼、文檔等方面表現出色。有了 TypeSpec,你就可以擺脫那些拖慢你速度的手寫文件,并在幾秒鐘內生成符合標準的 API Schemas。

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 描述文件

圖片圖片

生成 JSON Schema

圖片圖片

生成 Protobuf

圖片圖片

TypeSpec Playground

要快速體驗 TypeSpec 的功能,推薦你使用 TypeSpec 官方提供的 playground[2]。該 playground 預設了 API versioning、Discriminated unions、HTTP service、REST framework、Protobuf Kiosk 和 Json Schema 6 個不同的使用示例,并支持 File 和 Swagger UI 兩種視圖。

File 視圖

圖片圖片

Swagger UI 視圖

圖片圖片

TypeSpec 快速上手

1.安裝 @typespec/compiler 編譯器

npm install -g @typespec/compiler

2.安裝 VSCode 擴展

在 VSCode 中搜索 TypeSpec 安裝 TypeSpec for VS Code 擴展,或在瀏覽器中打開 TypeSpec for VS Code[3] 網址后點擊 Install 按鈕。

3.創建 TypeSpec 項目

首先新建一個新的目錄,然后在項目的根目錄下執行以下命令:

tsp init

圖片圖片

圖片圖片

4.安裝項目依賴

tsp install

成功執行上述命令后,在當前目錄下會生成以下目錄結構:

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

之后,打開 main.tsp 文件,輸入以下代碼:

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";
}

@error
model 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 文件:

圖片圖片

有關 TypeSpec 的相關內容就介紹到這里,如果你想進一步了解 TypeSpec 的基礎使用和高級用法,推薦你閱讀官方的使用文檔[4]。

參考資料

[1]TypeSpec: https://typespec.io/

[2]playground: https://typespec.io/playground

[3]TypeSpec for VS Code: https://marketplace.visualstudio.com/items?itemName=typespec.typespec-vscode

[4]使用文檔: https://typespec.io/docs

責任編輯:武曉燕 來源: 全棧修仙之路
相關推薦

2024-01-22 09:28:27

2023-09-01 08:53:52

后端優化開發

2022-07-04 10:40:35

Jinja2代碼生成器模板語言

2022-03-23 18:00:34

循環CPU線程

2013-07-12 10:18:39

微軟CEO鮑爾默微軟

2021-06-02 06:14:50

Nyxt瀏覽器

2015-03-19 10:26:50

2020-01-20 14:40:39

工具代碼開發

2023-11-22 08:26:03

HutoolJava工具集

2025-03-13 00:03:35

Rust函數Python

2022-02-06 20:55:39

jsEsbuild項目

2023-05-14 23:38:43

Glarity用戶視頻

2023-11-09 09:02:26

TypeScriptas const

2015-07-01 18:18:39

網絡中斷

2021-09-24 09:15:19

Windowsfx 1LinuxWindows 11

2021-08-19 09:00:12

監控文件Python

2022-09-28 10:35:31

JavaScript代碼內存泄漏

2010-12-05 19:03:39

TechEd 2010

2021-09-29 15:49:37

Exchange開源用戶開發者

2024-04-02 09:42:39

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 无码一区二区三区视频 | 天天爽天天干 | 理伦毛片 | 欧美亚州综合 | 黄视频在线网站 | 亚洲精品日韩一区二区电影 | av天天干 | 久久黄网| 欧美三级在线 | 欧美激情国产日韩精品一区18 | 亚洲激情在线观看 | 中文字幕的av | 99亚洲| 亚洲成人中文字幕 | 小川阿佐美pgd-606在线 | www.夜夜骑 | 四虎成人av | 一区二区伦理电影 | 99精品国产一区二区青青牛奶 | 日韩网 | 91极品视频 | 韩国毛片视频 | 欧美无乱码久久久免费午夜一区 | 一级高清视频 | 亚洲国产一区二区视频 | 国产精品久久久久久久免费观看 | 久久婷婷色 | 国产毛片久久久久久久久春天 | 亚洲先锋影音 | 天天操伊人 | 免费观看国产视频在线 | 真人女人一级毛片免费播放 | 久久精品国产一区二区三区不卡 | 91传媒在线观看 | 亚洲综合小视频 | 国产有码 | 综合精品久久久 | 亚洲综合天堂网 | 久久av一区 | 99热这里都是精品 | 久久亚洲欧美日韩精品专区 |