Routes ServiceStack查询字符串映射
我很好奇是否可以修改servicesstack路由映射规则。 我希望非查询字符串参数进入模型的一个区域,而查询字符串参数进入另一个区域 具体而言,我有以下路线:Routes ServiceStack查询字符串映射,routes,
servicestack,Routes,
servicestack,我很好奇是否可以修改servicesstack路由映射规则。 我希望非查询字符串参数进入模型的一个区域,而查询字符串参数进入另一个区域 具体而言,我有以下路线: [Route("/gis/services/{Folders*}/{ServiceName}/{ServiceType}/{LayerId}/query", HttpMethods.Get)] public class Model : Envelope<Request> { } [Route(“/gis/services/
[Route("/gis/services/{Folders*}/{ServiceName}/{ServiceType}/{LayerId}/query", HttpMethods.Get)]
public class Model : Envelope<Request>
{
}
[Route(“/gis/services/{Folders*}/{ServiceName}/{ServiceType}/{LayerId}/query”,HttpMethods.Get)]
公共类模型:信封
{
}
信封的定义如下:
public class Envelope<T>
{
public string Folders { get; set; }
public string ServiceType { get; set; }
public string ServiceName { get; set; }
public int LayerId { get; set; }
public T Payload { get; set; }
}
公共类信封
{
公共字符串文件夹{get;set;}
公共字符串服务类型{get;set;}
公共字符串ServiceName{get;set;}
public int LayerId{get;set;}
公共T有效载荷{get;set;}
}
如何将查询字符串参数映射到有效负载中,并使其他所有内容(文件夹、ServiceType、ServiceName、LayerId)映射为正常情况?只有请求的路径信息在ServiceStack路由中定义,所有其他属性都可以由其他请求参数(如QueryString或请求正文)填充 你的路线有问题吗
- 您还应该仅在路由末尾使用通配符映射,如
,以避免歧义李>{folders*}
- 路由应与DTO上的确切属性名称相匹配,例如
{ServiceName}
- 为了实现最大的互操作性,您的请求DTO应该是平面的,并且没有任何复杂的类型属性通过没有标准的QueryString填充
- 您的请求DTO已被使用,我们建议您不要尝试将其干燥或隐藏在继承之后
- 对于用于服务实现类的请求DTO,不要使用
名称服务