Docsの目次

Nagi Tasks — ブラウザーから使う小さなタスク管理

HTML/CSS/JavaScriptを埋め込み、NagiのJSON APIとSQLiteで動くサンプルです。追加・編集・完了・削除、絞り込み、全件の集計を備えています。外部のWebライブラリやCDNは使いません。

このページの目次

起動

リポジトリのルートで実行します。

cargo build --release --locked -p nagic
.\target\release\nagic.exe run --project test-nagi-code/web-demo

ブラウザーで http://127.0.0.1:8091 を開いてください。NAGI_PORTでポートを、NAGI_DBでDBパスを変えられます。プロジェクトとして起動した場合、初期設定ではtest-nagi-code/web-demo/nagi-tasks.sqliteを作り、再起動後も保存内容を使います。以前のrun tasks.nagi形式やexeの直接実行では、起動時の作業フォルダーが基準になります。既存DBを引き継ぐ場合はNAGI_DBにその絶対パスを指定してください。

Windows x64の配布用exeを作る場合:

.\scripts\build_windows_demo.ps1 -Source test-nagi-code/web-demo/tasks.nagi
.\build\distribution\nagi-tasks.exe

依存がキャッシュ済みなら-Offlineを付けられます。HTMLとSQLite・VC++ランタイムはexeに組み込まれるため、配布するファイルはexeひとつです。実行後の保存データは別のSQLiteファイルになります。Rust・Nagi・Pythonは配布先には不要です。停止はターミナルでCtrl+Cを押してください。

コードを読む

ファイル 内容
nagi.toml 入口ファイルの指定。CLIとVS Codeで共通
tasks.nagi HTTP handlerと起動
models.nagi JSONとDBの型
validation.nagi 入力検証
index.html ブラウザー画面とAPI呼び出し

画面はGET /、APIはGET/POST /api/tasks、GET/PUT/DELETE /api/tasks/{id}、GET /api/statsです。登録・更新bodyは{"title":"やること","done":false}です。タイトルはUTF-8で1〜240 byte、一覧は最新100件まで、集計は全件です。

このサンプルはloopbackで動くローカルアプリです。認証や本番公開の構成は含めていません。

起動済みのサーバーを確認

python test-nagi-code/web-demo/smoke_api.py --base-url http://127.0.0.1:8091

PythonはHTTPリクエストと応答の照合だけを行います。自分で登録したテストデータはAPI経由で削除し、既存のタスクを残します。サーバーの起動・停止やDBファイルの操作は行いません。

Nagi 0.1のドキュメントこのページのソース