[英]ServiceStack set Response DTO when ending the response in Request Filter
[英]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; }
}
我想進行一項服務操作,在其中可以遍歷所有設置路徑,並檢索以下內容:
有一些內置的服務堆棧來做到這一點嗎?
最后,我想用它來自動生成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.