服务栈通配符路径与招摇

时间:2013-02-19 20:24:27

标签: servicestack swagger

我正在使用ServiceStack并拥有这样的路线:

[Route("/hello/{Name*}")]

所以应该处理像/hello/some/parameters这样的事情 Swagger使用以下网址:/hello/{Name*},无论我为Name参数提供什么值,当我点击“试用按钮”时,我会收到以下消息: 从客户端(*)检索的潜在危险客户端值Request.Path。

注意,我使用以下ApiMember属性:

[ApiMember(Name = "Params", DataType = "string", ParameterType = "path" , IsRequired = true)]

并且我输入的任何文本仍然用*覆盖,我有上述错误。

有没有解决方法呢?

1 个答案:

答案 0 :(得分:3)

首先,发生错误是因为Swagger调用在路径/请求中使用了默认值{Name *}。 URL的路径中不允许使用(*)。 通过在ServiceStack类中使用正确的属性,您应该能够获得一个文本框,以在Swagger UI中输入您自己的值。

下面的内容应该会显示文本框。有关示例,请参阅https://github.com/ServiceStack/ServiceStack.UseCases/tree/master/SwaggerHelloWorld

public class Hello {
  [ApiMember(Name=”Name*”, Description = “Name Description”, ParameterType = “path”, DataType = “string”, IsRequired = true)] 
   public string Name {get; set; }
}