高性能網絡框架 Teo 入門教程 -Rust-
Teo 是新一代的聲明式高性能網絡框架,它支持 Rust、NodeJS 和 Python,這一個教程採用 Rust 語言。通過這個教程,你可以瞭解到如何使用 Teo,從中得到生產力提升的巨大好處。
創建項目
因爲是使用 Rust,我們使用 Rust 標配的工具進行創建一個 Rust 項目。
cargo new hello-teo --bin
cd hello-teo
安裝
和每一個 Rust 包一樣,Teo 使用 cargo 進行安裝。通過這個命令,把 teo 的命令行工具安裝到系統目錄下。
cargo install teo
開始編寫
在項目的目錄下,創建一個文件 “schema.teo”。這個文件中會聲明我們所需鏈接的數據庫,服務器設置,數據表和字段。
connector {
provider: .mysql,
url: "mysql://127.0.0.1:3306/helloteo"
}
通過這個 block,我們聲明瞭使用 MySQL 數據庫。在這下面添加一個 block。
server {
bind: ("0.0.0.0", 5050)
}
我們的服務器會監聽 5050 端口,寫 "0.0.0.0" 而不寫 "localhost" 是爲了可以在 Docker 中使用。
現在我們來聲明兩個表:用戶和文章。一個用戶可以有多篇文章。一個文章有一個作者。
model User {
@id @autoIncrement @readonly
id: Int
@unique @onSet($if($presents, $isEmail))
email: String
name: String?
@relation(fields: .id, references: .authorId)
posts: Post[]
}
model Post {
@id @autoIncrement @readonly
id: Int
title: String
content: String?
@default(false)
published: Bool
@foreignKey
authorId: Int
@relation(fields: .authorId, references: .id)
author: User
}
現在通過這條命令就可以啓動服務器了:
cargo teo serve
總共數十行代碼,一個包含增刪改查,關聯查詢的服務器就做好了。我們可以通過 Teo 生成的客戶端 SDK 或直接通過發送 HTTP 請求的方式進行請求。Teo 允許聲明自定義的路由並生成 ORM,也允許開發者禁用部分或全部自動生成的接口。開發者可以像其他網絡框架一樣編寫路由和先進後出插件。
請求
發送以下內容的 HTTP 請求到 "/User/create" 來創建用戶,並且關聯創建兩個文章。
{
create: {
email: "ada@teocloud.io",
name: "Ada",
posts: {
create: [
{
title: "Framework TEO",
content: "This post introduces Teo."
},
{
title: "The next generation",
content: "Use the next generation technology."
}
]
}
},
include: {
posts: true
}
}
發送以下請求到到 "/User/findMany" 查詢用戶,和其關聯的文章。
{
include: {
posts: true
}
}
Teo 非常的高效,在下一篇教程中,我會講解如何使用自定義路由。希望得到您的支持,在 GitHub 幫我們辛苦的付出點一個贊:https://github.com/teocloud/teo。如果您不爽不滿,也歡迎提出指正和批評。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/219P5twjEcZuq7q7a27lFQ