繁体   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