Tinystruct Patterns

作者 affaan-mef648e01899b無授權條款275K 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫3 天前更新

tinystructフレームワークでアプリケーションモジュールまたはマイクロサービスを開発する際に使用。ルーティング、コンテキスト管理、BuilderによるJSON処理、CLI/HTTPデュアルモードのパターンをカバー。

AI 產生的概覽

指導使用 tinystruct Java 框架開發應用模組與微服務,涵蓋路由、情境、JSON 及 CLI/HTTP 模式。

功能
此技能提供在 tinystruct Java 框架上開發模組的架構與實作模式,該框架對 CLI 與 HTTP 同等看待。內容涵蓋擴充 AbstractApplication、以 @Action 定義路由與命令列動作、透過 Context 處理每次請求的狀態、使用原生 Builder 元件進行 JSON 序列化、以 application.properties 設定,以及產生 bin/dispatcher 進入點。此外也列出反面模式與以 JUnit 5 進行的測試方式。
適用情境
適用於建立新的 tinystruct Application 模組、定義 @Action 路由或命令列動作,以及處理請求狀態與 JSON 輸出時。也用於設定資料庫或系統設定,以及偵錯路由衝突或 CLI 參數解析。
執行需求
需要 tinystruct Java 框架與 Java 執行環境;所述測試模式需要 JUnit 5。僅為說明內容,不隨附指令碼。

tinystruct 開発パターン

tinystruct Java フレームワークを使用してモジュールをビルドするためのアーキテクチャと実装パターン。CLIとHTTPが等しく扱われる軽量なシステムです。

使用するタイミング

  • AbstractApplication を拡張して新しい Application モジュールを作成するとき。
  • @Action を使用してルートとコマンドラインアクションを定義するとき。
  • Context を通じてリクエストごとの状態を処理するとき。
  • ネイティブの Builder コンポーネントを使用してJSONシリアライゼーションを行うとき。
  • application.properties でデータベース接続またはシステム設定を構成するとき。
  • ApplicationManager.init() を通じて標準的な bin/dispatcher エントリポイントを生成または再生成するとき。
  • ルーティング競合(Action)またはCLI引数解析のデバッグを行うとき。

動作の仕組み

tinystruct フレームワークは、@Action でアノテーションされたメソッドをターミナルとWeb環境の両方でルーティング可能なエンドポイントとして扱います。アプリケーションは AbstractApplication を拡張することで作成され、init() などのコアライフサイクルフックとリクエスト Context へのアクセスが提供されます。

ルーティングは ActionRegistry によって処理され、パスセグメントをメソッド引数に自動的にマッピングして依存関係を注入します。データのみのサービスでは、ゼロ依存のフットプリントを維持するために、JSONシリアライゼーションにネイティブの Builder コンポーネントを使用すべきです。フレームワークには ApplicationManager のユーティリティも含まれており、bin/dispatcher スクリプトを生成することでプロジェクトの実行環境をブートストラップします。

例

基本アプリケーション(MyService)

java
public class MyService extends AbstractApplication {    @Override    public void init() {        this.setTemplateRequired(false); // データ/APIアプリの .view 参照を無効化    }
    @Override public String version() { return "1.0.0"; }
    @Action("greet")    public String greet() {        return "Hello from tinystruct!";    }}

パラメータ付きルーティング(getUser)

java
// Web: /api/user/123 または CLI: "bin/dispatcher api/user/123" を処理@Action("api/user/(\\d+)")public String getUser(int userId) {    return "User ID: " + userId;}

HTTPモード分岐(login)

java
@Action(value = "login", mode = Mode.HTTP_POST)public boolean doLogin() {    // ログイン処理    return true;}

ネイティブJSONデータ処理(getData)

java
@Action("api/data")public Builder getData() throws ApplicationException {    Builder builder = new Builder();    builder.put("status", "success");    Builder nested = new Builder();    nested.put("id", 1);    nested.put("name", "James");    builder.put("data", nested);    return builder;}

設定

設定は src/main/resources/application.properties で管理されます。

テストパターン

JUnit 5 を使用して、アクションが ActionRegistry に登録されていることを検証することでアクションをテストします。

レッドフラグとアンチパターン

症状正しいパターン
com.google.gson または com.fasterxml.jackson のインポートorg.tinystruct.data.component.Builder を使用する。
.view ファイルの FileNotFoundExceptionAPIのみのアプリでは init() 内で setTemplateRequired(false) を呼び出す。
private メソッドへの @Action アノテーションアクションはフレームワークに登録されるために public である必要がある。
アプリ内での main(String[] args) のハードコーディングすべてのモジュールのエントリポイントとして bin/dispatcher を使用する。
手動での ActionRegistry 登録自動検出のために @Action アノテーションを優先する。

テクニカルリファレンス

詳細なガイドは references/ ディレクトリにあります:

  • アーキテクチャと設定 [blocked] — 抽象化、パッケージマップ、プロパティ
  • ルーティングと@Action [blocked] — アノテーションの詳細、モード、パラメータ
  • データ処理 [blocked] — JSONのためのネイティブ Builder の使用
  • システムと使用方法 [blocked] — Context、セッション、イベント、CLI使用方法
  • テストパターン [blocked] — JUnit 5 統合と ActionRegistry テスト

來源與署名

來源:affaan-m/ecc位於docs/ja-JP/skills/tinystruct-patterns提交ef648e0

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架