Service Stack是否支持Swagger中的模型。 在下面的示例代码中
[Route("/User", "GET", Summary = "Get all the users available")]
[Route("/User", "POST, PUT", Summary = "Create a new user")]
[Route("/User/{Id}", "GET", Summary = "Get user with a specific id")]
public class User : RequestBase, IReturn<UserResponse>
{
[ApiMember(Name = "Id", Description = "The User Id", ParameterType = "path", DataType = "int", IsRequired = false)]
public int Id { get; set; }
[ApiMember(Name = "UserData", Description = "The User Data", ParameterType = "body", DataType = "complex", IsRequired = false)]
public UserData Entry { get; set; }
}
我希望UserData是一个复杂的类型或容器类型。但是,如果我将它定义为其中之一,那么我在SwaggerUI中得到的只是一个文本区域框。我没有得到我在网上petstore示例中看到的Model和ModelSchema链接。
答案 0 :(得分:1)
从最新的ServiceStack版本开始,正确支持“body”类型的参数。您需要在第二个DataType = "User"
属性中设置ApiMember
。这将允许Swagger UI正确显示模型架构信息。此外,对于简单类型,您可以在SwaggerType
类中使用常量;例如,您可以将第一个Apimember
属性更改为DataType = SwaggerType.Int
。