高性能網絡框架 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