簡體   English   中英

ServiceStack遍歷所有請求/響應DTO

[英]ServiceStack iterate through all request/response DTO

如何遍歷通過路由設置的所有請求/響應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; }
}

我想進行一項服務操作,在其中可以遍歷所有設置路徑,並檢索以下內容:

  • 要求網址
  • 班級名稱
  • 請求屬性
  • 響應DTO屬性

有一些內置的服務堆棧來做到這一點嗎?

最后,我想用它來自動生成ExtJS商店/模型。 我也對更好/替代方法感興趣。

編輯:

這是我想出的解決方案: 要點

/extjs/javascript路由上,該服務返回extjs商店/模型,在/extjs/metadata路由上,該服務返回一個帶有store / model文件夾的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中的簡單屬性。 有改進的余地...

您是否看過ServiceStack.Api.Swagger包( 在此處記錄 )? 這聽起來很像您想要的。

如果Swagger UI無法立即為您工作,則可以使用ServiceStack.Api.Swagger包並將請求發送到/resources及其相關的URL,以獲取JSON格式的所有元數據,然后根據您的需求。 或者,如果您想用C#編寫代碼 ,請查閱SwaggerApiService和SwaggerResourcesService的代碼 ,以了解其如何檢索所有DTO和路由並提取有關它們的元數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM