簡體   English   中英

如何在ServiceStack REST服務中使用任意HTTP動詞?

[英]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服務中處理此請求,因此您將需要在RequestFilterRequestFitler屬性中處理它(確保關閉httpRes以終止請求)。

您還可以通過在AppHost的EndpointHostConfig.RawHttpHandlers配置中注冊自己的自定義IHttpHandler來完全繞開ServiceStack管道。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM