#Teoとは何か?Teo(テオ)はスキーマ中心のrust,node,js,python用の次世代Webフレームワーク #六09



#Teoとは何か?Teo(テオ)はスキーマ中心のrust,node,js,python用の次世代Webフレームワーク #六09

https://github.com/teodevgroup/teo より
紹介

テオは スキーマ中心 rust、node。js、python 用の次世代 Web フレームワーク。

ハイライトと機能
  1. GraphQL と Prisma にインスパイアされた革新的なスキーマ定義
  2. データベースの自動移行
  3. Rust、Node。js、Python をサポートしています
  4. MySQL、PostgreSQL、SQLite、MongoDB をサポートしています
  5. 生成された ORM タイプとインターフェイス
  6. フロントエンド用の生成されたクエリクライアント
  7. 非常に効率的でパフォーマンス的です
  8. データのサニタイズ、変換、検証
  9. 内蔵ユーザーセッション
  10. 組み込みの許可チェック
  11. まずはミドルウェアから
  12. カスタムルートとハンドラー
  13. 生成されたカスタマイズ可能な管理ダッシュボード

始め

Teo を始めるための最速の方法は、次のことです クイックスタートガイド.

インストール

Node。js エディションをインストールする。
npm インストール @ テオクラウド/テオ



Python エディションをインストールする。
ピップインストール teo



Rust エディションをインストールする。
貨物インストール teo



スキーマのみのサーバーを作成します

Teo でサーバーを書くのはとても簡単です。名前の付いたファイルを作成します schema.teo。接続するデータベースとリッスンするポートを指定します。
connector { provider: .sqlite, url: "sqlite::memory:" } server { bind: ("0.0.0.0", 5050) } 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 }



サーバーを起動します teo serve 命令。これで、作成、更新、削除、読み取り、集計、およびグループ化を行うことができます。私たちのものを読んでくださいクエリクライアントガイド詳細な使用法。

カスタムハンドラを書く

スキーマ内のハンドラを宣言します。
@map(.get, "/echo/:data", interface: "EchoPathArguments") declare nonapi handler echo(): Any



Implement the handler with program code.

Node.js implementation
import { App, Response, RequestCtx } from '@teocloud/teo' import { EchoPathArguments } from './entities' const app = new App() app.mainNamespace().defineHandler("echo", (ctx: RequestCtx) => { const pathArguments: EchoPathArguments = ctx.pathArguments() return Response.string(pathArguments.data, "text/plain") }) app.run()






錆実装
モッド 実体; 用いる 東京::メイン; 用いる テオ::前奏::{アプリ, 答え, 結果, パス}; 用いる クレート::実体::エコーパス引数; #[メイン] 放棄する フィン メイン() -> 結果<()> { させる アプリ = アプリ::新しい()?;アプリ.main_ 名前空間_mut().ディファインハンドラー("「エコー」", |パス _args: エコーパス引数| 放棄する 動く { オッケー::<答え, エラー>(答え::文字列(パス _args.データ(), "「テキスト/プレーン」")) });アプリ.駆ける().待つ }



チュートリアル

準備した 初心者向けチュートリアルシリーズあなたが Teo を学び、理解するのを助けるために。

問題

このレポで問題を提出することを歓迎します。

貢献

私たちのものを読んでください 貢献ガイドプロジェクトを設定し、貢献を開始するには。

ライセンス

TEO は Apache 2。0 ライセンスの下にあります。

コメント

このブログの人気の投稿

nitter.netが2021年1月31日から沈黙。代替インスタンスは?

#INVIDIOUSを用いて広告なしにyoutubeをみる方法 #士17

#nitterがtwitterからBANされた?ツイート取得ができない #o7oI