簡體   English   中英

Web API狀態端點(GET和POST)

[英]Web API Status Endpoint (GET and POST)

我們正在使用New Relic來監控我們的許多Web應用程序。

這為我們提供了可用性監控,它允許您在應用程序中指定一個特定的端點,可以“ping”以確保您的應用程序“活着” - 顯然非常有用,但是有一個小問題。

我注意到我從New Relic獲得的ping請求並不總是POST ,它有時是GET ,這導致我的端點拋出405 HttpStatusMessage : Method not allowed

沒問題 - 我想我只是配置我的端點來響應兩者:

[Route("status")]
public class StatusController : ApiController
{
    public IHttpActionResult Post()
    {
        return Ok();
    }

    public IHttpActionResult Get()
    {
        return Ok();
    }
}

現在被授予,這確實有效,但對於這樣一個簡單的任務來說似乎很麻煩。

我很好奇 - 有沒有更干凈或更好的方法,我還沒有看到呢?

您可以讓您的方法接受POST和GET

// Route /status to this controller
[RoutePrefix("status")]
public class StatusController : ApiController
{
    [HttpGet] // accept get
    [HttpPost] // accept post
    [Route("")] // route default request to this method.
    public IHttpActionResult Get()
    {
        return Ok();
    }
}

默認情況下,除非使用子字符串或檢測到問題,否則pingers將使用HEAD請求。 在這兩種情況中的任何一種情況下都會發出GET請求。

您的解決方案對我來說非常簡單。

暫無
暫無

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

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