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,如下圖:
~ END ~