3

服务堆栈是否支持 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

4

1 回答 1

1

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

于 2013-06-26T13:04:16.540 回答