Swagger(ServiceStack)中未准确记录通用类型的响应对象

 gjfeh46999 发布于 2023-02-06 11:53

关于泛型类型响应对象的文档,我遇到了Swagger的ServiceStack实现的问题.强类型响应对象被正确记录和显示,但是一旦使用泛型类型对象作为响应,文档就不准确并且会产生误导.

请求DTO

[Route("/users/{UserId}", "GET", Summary = "Get a specific User Profile")]
public class GetUser : IReturn>
{
    [ApiMember(Description = "User Id", ParameterType = "path", IsRequired = true)]
    public int UserId { get; set; }
}

回复DTO

public class ServiceResponse : IServiceResponse
{
    public IList Errors { get; set; }
    public bool Successful { get; set; }
    public string Message { get; set; }
    public string StackTrace { get; set; }
    public T Data { get; set; }

    public ServiceResponse()
    {
        Errors = new List();
    }
}

响应DTO类型

public class UserProfile : RavenDocument
{
    public UserProfile()
    {
        Races = new List();
        Workouts = new List();
    }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string DisplayName { get; set; }
    public DateTime? BirthDate { get; set; }
    public Gender? Gender { get; set; }
    public string UltracartPassword { get; set; }
    public string UltracartCartId { get; set; }

    [UniqueConstraint]
    public string Email { get; set; }

    public string ImageUrl { get; set; }

    public FacebookUserInfo FacebookData { get; set; }
    public GoogleUserInfo GoogleData { get; set; }

    public DateTime CreatedOn { get; set; }
    public DateTime? LastUpdated { get; set; }
    public UserAddress ShippingAddress { get; set; }
    public UserAddress BillingAddress { get; set; }
    public IList Races { get; set; }
    public IList Workouts { get; set; }
}

这些例子很简单.没有什么是真正的hacky或聪明的事情,但这是我从Swagger开箱即用的示例文档:

摇摇晃晃的例子

如您所见,泛型类型未正确记录,而是使用其他类型.由于我正在使用相同的ServiceResponse包装器来处理所有响应,因此这种情况正在全面发生.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有