[英]How do I use an arbitrary HTTP verb in a ServiceStack REST service?
使用ServiceStack創建REST服務時,如何處理任意HTTP動詞?
最常見的動詞具有非常簡單的方法。 例如,要處理GET請求,我將執行以下操作:
public class MyService : RestServiceBase<MyRequest>
{
public override object OnGet(MyRequest request){
//do stuff and return HttpResult or object for serialization
}
}
PUT,POST,DELETE和PATCH存在類似的替代。
如果我想使用HEAD或其他動詞怎么辦?
(我瀏覽了文檔和示例以及其他ServiceStack問題,但沒有發現任何指示正確方法的信息。)
ServiceStack的RestServiceBase類已經內置了對GET,POST,PUSH,DELETE和PATCH的支持。 因此,您可以像使用OnGet()
方法一樣覆蓋它,例如,可以使用以下方法處理DELETE請求:
public override object OnDelete(MyRequest request){
//do stuff and return HttpResult or object for serialization
}
對於HEAD請求,您目前無法在ServiceStack服務中處理此請求,因此您將需要在RequestFilter或RequestFitler屬性中處理它(確保關閉httpRes以終止請求)。
您還可以通過在AppHost的EndpointHostConfig.RawHttpHandlers配置中注冊自己的自定義IHttpHandler來完全繞開ServiceStack管道。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.