前言
隨著微服務的不斷發展,開發 Web API 并提供一致且清晰的響應模型對開發人員和用戶都至關重要。標準化的響應不僅使可以使用 API 更易于使用,而且還能提高其可維護性。本文將探討在 .NET Core Web API 創建標準化響應的過程,實現管理 API 響應和處理錯誤的實例。
標準響應模型
一致性的 API 響應對于 Web APP 很關鍵。引入標準化響應模型可確保請求端以預測的格式接收響應,無論請求是否成功?,F在從定義一個標準模型(ResponseModel<T>)開始,該模型封裝了成功和錯誤場景。
標準響應模型通常包括以下內容:
定義標準化響應模型的簡單示例:
public class ResponseModel<T>
{
/// <summary>
/// 狀態
/// </summary>
public bool Status { get; set; }
/// <summary>
/// 消息
/// </summary>
public string Message { get; set; }
/// <summary>
/// 保存響應數據
/// </summary>
public T Data { get; set; }
/// <summary>
/// 異常
/// </summary>
public List<string> Errors { get; set; }
/// <summary>
///
/// </summary>
public ResponseModel()
{
Status = true;
}
}
模型實現步驟
1、創建響應標準模型類
定義一個可以處理不同類型數據的泛型類ResponseModel<T>,其包括 Status、Message、Data、Errors 等屬性??蓞⒖忌厦娴氖纠?。
2、在 Controller 服務中實現響應模型
定義Customer服務的Controller類,方法分別是GetCustomerById 和 CreateCustomer。這二個方法分別為 GET API 的方法與POST API 的方法。
public class CustomerModel
{
/// <summary>
/// ID
/// </summary>
public int CustomerId {get; set;}
/// <summary>
/// 名稱
/// </summary>
public string CustomerName {get; set;}
/// <summary>
/// 簡稱
/// </summary>
public string CustomerShort {get; set;}
/// <summary>
/// 城市
/// </summary>
public string City {get; set;}
/// <summary>
/// 等級
/// </summary>
public string Grade {get; set;}
}
using Microsoft.AspNetCore.Mvc;
namespace Fountain.WebAPI.JwtTokenDemo.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class CustomerController : ControllerBase
{
/// <summary>
///
/// </summary>
[HttpGet("{id}")]
public async Task<IActionResult> GetCustomerById(int id)
{
ResponseModel<CustomerModel> response = new ResponseModel<CustomerModel>();
try
{
CustomerModel item = await itemService.GetItemByIdAsync(id);
if (item == null)
{
response.Status = false;
response.Message = "客戶檔案不存在";
// 返回響應
return NotFound(response);
}
response.Status = true;
response.Message = "Success";
response.Data = item;
// 返回響應
return Ok(response);
}
catch (Exception ex)
{
response.Status = false;
response.Message = "Failure";
List<string> error = new List<string>();
error.Add(ex.Message);
// 返回響應
response.Errors = error;
return StatusCode(500, response);
}
}
}
}
using Microsoft.AspNetCore.Mvc;
namespace Fountain.WebAPI.JwtTokenDemo.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class CustomerController : ControllerBase
{
[HttpPost]
public async Task<IActionResult> CreateCustomer(CustomerModel customer)
{
ResponseModel<string> response = new ResponseModel<string>();
try
{
itemService.CreateCustomer(customer);
response.Data = null;
response.Status = true;
response.Message = "success";
return Ok(response);
}
catch (Exception ex)
{
response.Status = false;
response.Message = "Failure";
response.Data = null;
List<string> error = new List<string>();
error.Add(ex.Message);
// 返回響應
response.Errors = error;
return StatusCode(500, response);
}
}
}
}
3、簡單說明
ResponseModel 使用泛型的設計,允許響應模型處理任何類型的數據,使其具有極強的通用性和可重用性。無論您的 API 需要返回簡單字符串、復雜對象還是項目集合,通用數據類型參數 <T> 都可以確保標準響應模型可以無縫地適應它。
小結
以上是 ASP.NET Core Web API ,使用 C# 實現標準響應模型的具體步驟。通過使用標準響應可以增強用戶體驗、簡化調試并確保Web API的可靠性。希望本文對您有所收獲,如有不到之處,請多多包涵。
該文章在 2024/11/22 17:03:14 編輯過