我需要解释Matching =“...”规则中的字符串应该看谁。
我在docs.servicestack.com上只看到了几个例子:
[Route("/users/{Id}", Matches = "**/{int}")]
[Route("/{UserId}/profile", Matches = @"{int}/**")]
[Route("/feed", Matches = "IsAuthenticated")]
还有一些。
我试过了:
[Route("/myservice/bookings/{SearchString}", Matches = "**/{string}", Verbs = "GET")]
public class SearchAddress : IReturn<SearchAddressResponse>
{
public string SearchString { get; set; }
}
但我得到了:
:'未知匹配规则'** / {string}'在路线'/ myservice / bookings / {SearchString}''
我可以补充一点,这条规则很好:
[Route(/myservice/bookings/{BookingId}", Matches = "**/{int}", Verbs = "GET")]
public class GetBooking: IReturn<GetBookingResponse>
{
[ApiMember(IsRequired = true)]
public uint BookingId { get; set; }
}
我有
/myservice/bookings/{SearchString} // a string to search for bookings
和
/myservice/bookings/{BookingId} // an Int for a specific booking
我认为我可以区分他们使用匹配规则。但是,我不确定我必须使用什么规则,或者为什么一个有效,另一个没有。
请参阅有关注册Custom Matching Rules的文档,如果您没有使用内置规则,则需要在Config.RequestRules
中注册实现。