![](/img/trans.png)
[英]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.