asp.net core web api model naming rule coding style appsettings visual studio code restful api

ASP.NET Core 5 EP 11:第一支HTTP HEAD API

HEAD的不同與相同

HEAD方法其實最大的不同在於回傳內容不包含Http Body,只專注在HTTP回傳狀態與標頭(Header),通常會用於判斷目標資源是否存在;相同的部分,HEAD與GET方法都會把程式碼走過一次,也會回覆相同的標頭(Header)資訊,所以HEAD與GET常常是可以同時存在的,例如要檢查一個被下載的檔案是否存在,此時可以先用HEAD來檢查,檔案確認存在後,再使用GET來下載檔案。

Mozilla開發者網站的說明:連結

在原本的GET API增加HEAD方法

步驟1:在Controller中的API函數上新增[HttpHead]的標籤,讓這個API同時有GET與HEAD兩種方法。

// 設定這個API使用HEAD方法
[HttpHead]
// 設定這個API使用GET方法
[HttpGet]
public IActionResult Get()
{
    // 宣告一個食譜的Model,並呼叫Libs.Recipe.Get函數取得資料
    Models.Resipe objResipe = Libs.Recipe.Get();
    // 回傳HTTP 200,內容為糖醋排骨的食譜資料
    return Ok(objResipe);
}

驗證HEAD方法

步驟1:打開Swagger的畫面,可以發現有三個API,如下圖:

步驟2:執行HEAD的那支API,會發現,與GET同樣的程式碼,但卻只有回傳HTTP狀態與Header,並沒有Http Body,如下圖:

swagger HTTP HEAD API

~ END ~


, ,

Related posts

Latest posts