ルートで設定されたすべてのリクエスト/レスポンス DTO を反復処理するにはどうすればよいですか?
たとえば、次のようなルートです。
[Route("/api/something", "GET")]
public class SomethingGetRequest : IReturn<List<Something>>
{
public int SomethingId { get; set; }
}
および次のような応答 DTO:
public class Something
{
public string A { get; set; }
public int B { get; set; }
}
すべてのセットアップ ルートを反復処理し、次のものを取得できるサービス アクションが必要です。
- リクエストURL
- クラス名
- リクエストのプロパティ
- 応答 DTO プロパティ
これを行う方法で組み込まれた Servicestack はありますか?
最後に、これを使用して ExtJS ストア/モデルを自動生成したいと思います。また、より良い/代替アプローチにも興味があります。
編集:
これが私が思いついた解決策です:要旨
/extjs/javascript
ルート上でサービスは extjs ストア/モデルを返し、ルート上で/extjs/metadata
サービスはストア/モデル フォルダを含む zip ファイルを返し、新しく作成された Sencha Architect プロジェクトにドロップできます。テンプレートは、Architect v. 3.0.1.1343 が生成するものに基づいています。
これは、次のように装飾されたルートを想定しています。
[Route("/api/something", "GET", Summary="route description")]
public class SomethingGetRequest : IReturn<List<Something>>
{
[ApiMember(Name = "SomethingId", ParameterType = "query", IsRequired = true, DataType = "int")]
public string SomethingId { get; set; }
}
現在の実装は、要求/応答 DTO の単純なプロパティに対してのみ機能します。改善の余地あり…