Swagger UI和ServiceStack

时间:2013-03-20 20:45:43

标签: servicestack swagger

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链接。

http://petstore.swagger.wordnik.com/#!/pet/addPet_post_1

1 个答案:

答案 0 :(得分:1)

从最新的ServiceStack版本开始,正确支持“body”类型的参数。您需要在第二个DataType = "User"属性中设置ApiMember。这将允许Swagger UI正确显示模型架构信息。此外,对于简单类型,您可以在SwaggerType类中使用常量;例如,您可以将第一个Apimember属性更改为DataType = SwaggerType.Int