ServiceStack X-HTTP-Method-Override

本文关键字:X-HTTP-Method-Override ServiceStack | 更新日期: 2023-09-27 18:19:19

我有一个ServiceStack web服务,它需要支持X-HTTP-Method-Override报头。

我试图模拟删除请求通过一个Get请求与X-HTTP-Method-Override头集,但我得到一个:-

404 - Handler for Request not found

请求的格式如下:

Get - http://localhost/test/1

标题

User-Agent: Fiddler
Host: localhost
X-HTTP-Method-Override: Delete

服务和它的DTO实现看起来像:

[Route("/test/{id}", HttpMethods.Delete)]
public class TestRequest {
    public int id { get; set; }
}
public class TestService : Service {
    public object Delete(TestRequest request){
        return request.id;
    }
}

我在ServiceStack源代码中发现了一个代码片段,它说支持X-HTTP-Method-Override特性。

是否还有其他的东西我需要配置在项目中得到这个工作?请帮助…

ServiceStack X-HTTP-Method-Override

我想明白了,我要把Get动词添加到请求中,就像这样:

[Route("/test/{id}", "Delete,Get")]
public class TestRequest {
    public int id { get; set; }
}

现在Delete方法将在模拟时通过通过X-HTTP-Method-OverrideGet请求调用

public class TestService : Service {
    public object Delete(TestRequest request){
        return request.id;
    }
}