C# ServiceStack V4 API文档缺少响应类型(列表中)
我们正在尝试从Swagger转换为使用SSV4的本机元数据功能。但在这样做的过程中,api的生成出现了一些问题: 问题似乎出现在内部SS操作BaseMataHandler.GetMetadataTypesProperty(…)中,它似乎无法检测列表中的复杂类型(并将它们与操作关联)。例如,此请求/响应dto将不显示“ComplexType”的文档:C# ServiceStack V4 API文档缺少响应类型(列表中),c#,servicestack,C#,servicestack,我们正在尝试从Swagger转换为使用SSV4的本机元数据功能。但在这样做的过程中,api的生成出现了一些问题: 问题似乎出现在内部SS操作BaseMataHandler.GetMetadataTypesProperty(…)中,它似乎无法检测列表中的复杂类型(并将它们与操作关联)。例如,此请求/响应dto将不显示“ComplexType”的文档: [Route(“/example”,“GET”)] [数据合同] 公共类示例:IReturn { [ApiMember(IsRequired=t
[Route(“/example”,“GET”)]
[数据合同]
公共类示例:IReturn
{
[ApiMember(IsRequired=true)]
[数据成员(顺序=1,IsRequired=true)]
公共Guid示例Guid{get;set;}
}
[数据合同]
公共类示例响应:IHasResponseStatus
{
[数据成员(顺序=1,IsRequired=false)]
公共列表结果{get;set;}
[数据成员(顺序=2,IsRequired=false)]
公共响应status ResponseStatus{get;set;}
}
如果“ComplexType”是单数的(不在列表中),则该类型将正确记录在元数据页面中。我是否错误地配置了这些DTO?或者元数据引擎
先谢谢你。。。Jordan我已经扩展了ServiceStack的元数据页面,以在泛型和数组集合中包含引用的类型
此更改可从ServiceStackv4.0.32+中获得,该版本现已推出。在我们的实现中进行了测试,并按预期工作。非常感谢。。。让我一天都很愉快嗨@mythz-如果可能的话,我想和你重新讨论这个问题。。。正如之前所确认的,它对第一级通用阵列工作良好。。。但是,如果存在多个数组层,则元数据页不会显示该类的信息。在上面的示例中,考虑一个“复杂类型”类型,其中包含一个“复杂类型2”中的另一个通用列表。在这种情况下,ComplexType2将不会显示在元数据页面中。您所做的检查几乎需要是递归的或类似的东西?再次感谢,@jglassco请在:打开一个新的问题,并包括模型复制的问题。
[Route("/example", "GET")]
[DataContract]
public class Example : IReturn<Example Response>
{
[ApiMember(IsRequired = true)]
[DataMember(Order = 1, IsRequired = true)]
public Guid ExampleGuid { get; set; }
}
[DataContract]
public class ExampleResponse : IHasResponseStatus
{
[DataMember(Order = 1, IsRequired = false)]
public List<ComplexType> Results{ get; set; }
[DataMember(Order = 2, IsRequired = false)]
public ResponseStatus ResponseStatus { get; set; }
}