3. CRUD 기능

3-1. 엔드포인트에서의 상태 코드

이 섹션에서는 API 엔드포인트에서 다양한 HTTP 상태 코드를 반환하는 방법을 다룹니다.

  1. Action Result 사용:
      • API에서는 IEnumerable<PlantDTO>와 같은 구체적인 반환 유형 대신 ActionResult을 사용하여 다양한 상태 코드와 함께 데이터를 반환할 수 있습니다. ActionResult는 IActionResult 인터페이스의 구현체로, 다양한 반환 유형을 가능하게 합니다.
  2. 상태 코드 반환:
    • 성공적인 요청의 경우 200 OK와 함께 데이터를 반환합니다. 이는 Ok() 메서드를 사용하여 구현할 수 있습니다.유효하지 않은 요청(예: ID가 0인 경우)에는 400 Bad Request를 반환합니다.Comment찾을 수 없는 리소스에 대해서는 404 Not Found를 반환합니다. 이는 요청된 ID에 해당하는 Plant가 없는 경우에 해당합니다.
  3. 테스트 및 검증:
    • Swagger UI를 통해 엔드포인트를 테스트하면, 입력된 ID 값에 따라 400 Bad Request, 404 Not Found, 또는 200 OK와 함께 데이터를 반환하는 것을 확인할 수 있습니다.
  4. 실습 예시:
    • 위 코드는 ID를 매개변수로 받아 특정 Plant를 조회하는 엔드포인트에서 다양한 상태 코드를 반환하는 방법을 보여줍니다. 유효하지 않은 ID, 존재하지 않는 리소스, 성공적인 조회 각각에 대해 적절한 HTTP 상태 코드를 반환합니다.
[HttpGet]
public ActionResult<IEnumerable<PlantDTO>> GetPlants()
{
    return Ok(PlantStore.PlantList);
}
​
[HttpGet("id:int")]
public ActionResult<PlantDTO> GetPlant(int id)
{
    if (id == 0)
    {
        return BadRequest();
    }
​
    var plant = PlantStore.PlantList.FirstOrDefault(u=>u.Id == id);
​
    if (plant == null)
    {
        return NotFound();
    }
​
    return Ok(plant);
}

이 방법을 통해 API는 클라이언트에게 요청의 성공 여부와 실패의 원인을 명확하게 알릴 수 있으며, 클라이언트는 이 정보를 바탕으로 적절한 처리를 할 수 있습니다. 상태 코드를 효과적으로 사용하는 것은 RESTful API 설계의 중요한 부분입니다.

찾을 수 없는 리소스에 대해서는 404 Not Found를 반환

프로젝트 리소스

https://github.com/kimdaewoong2022/MorePlants_WebAPI/tree/ae56cd5c00ba6c9ed38de5fbd8498e273d0bb93d