我有以下 DTO:
[Route("/images/{imageId}/upload", "PUT")]
public class GetImageWithStream : IRequiresRequestStream
{
public Stream RequestStream { get; set; }
public string imageId { get; set; }
}
///images/{imageId}/upload?url={imageUrl}
[Route("/images/{imageId}/upload", "PUT")]
public class GetImageWithUri
{
public string imageId { get; set; }
public string url { get; set; }
}
/images/1/upload -> 这应该路由到第一个 DTO
/images/1/upload?url=something.jpg -> 这应该路由到第二个 DTO
现在它们都路由到第一个 DTO,如果是第二个路径,流当然是 NullStream。对于第一个路径,流很好,但 imageId 为空。
或者我可以想象这样的事情:
[Route("/images/{imageId}/upload", "PUT")]
public class GetImageWithStream : IRequiresRequestStream
{
public Stream RequestStream { get; set; }
public string imageId { get; set; }
public string url { get; set; }
}
是否可以在 ServiceStack 中以不同的方式处理相同的 PATH?