HTTP 狀態碼分成 5 個類別,都是三位數的編號。
- 1XX (Informational) – 請求已被接收,繼續處理中
- 2XX (Successful) – 請求已成功被接收、理解、並接受
- 3XX (Redirection) – 請求需要進一步操作才能完成
- 4XX (Client Error) – 請求包含語法錯誤或無法完成
- 5XX (Server Error) – 伺服器無法完成請求(請求本身沒有問題)
這篇文章主要介紹 200 (OK)、400 (Bad Request) 和 401 (Unauthorized)。
1. 200 OK
- 這是最常見的成功狀態碼,
return Ok(result); // 回傳 200 OK
2. 400 Bad Request
- 最常見的失敗狀態碼,會發生在用戶端傳送了不正確或無效的資料時,應回傳 400 狀態碼。
return BadRequest("Invalid data."); // 回傳 400 Bad Request
3. 401 Unauthorized
- 表示用戶端請求未經授權,或者說身份驗證失敗的情況。
return Unauthorized(); // 回傳 401 Unauthorized
範例
/// 5. 修改個人資料
/// <include file='Docs/AccountControllerAPIDOCS.xml' path='doc/members/member[@name="UpdUserData"]/*'/>
[HttpPost("UpdUserData")]
[Produces("application/json")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
public ActionResult UpdUserData([FromBody] ReqUpdUserData ReqUpdUserData)
{
List<ResData> ErrRes;
string ErrMsg = "";
// 檢查使用者有無登入
if (_jwtAuthFilter.AuthChecking(Request.Headers.Authorization))
{
//.
//.
//.
//.
// 檢查輸入
if (ErrMsg == "")
{
// ......
// 修改使用者資料表
_dbcontext.Database.ExecuteSqlRaw("EXEC usp_Upd_UUser2 @UID, @UName, @UGender, @UBirthday, @UNationID, @UPhone_Code, @UPhone");
List<ResData> Res;
Res = new List<ResData>
{
new ResData {State="OK",Msg="個人資料修改成功~"}
};
return Ok(Res);
}
else
{
ErrRes = new List<ResData>
{
new ResData {State="Err",Msg=ErrMsg}
};
return BadRequest(ErrRes);
}
}
else
{
ErrRes = new List<ResData>{
new ResData {State="Err",Msg="請重新登入!"}
};
return Unauthorized(ErrRes);
}
}
- 此段程式碼從外部 XML 檔案中提取文件說明。
- 用來指定 API 端點可能回傳的 HTTP 狀態碼。
- 回傳 HTTP 狀態碼。
