3. CRUD 기능

3-7. Http Delete 작업

이 섹션에서는 API에서 리소스를 삭제하는 방법을 다룹니다. HTTP DELETE 요청을 사용하여 특정 ID를 가진 Plant를 삭제하는 엔드포인트를 구현합니다.

  1. Http Delete 엔드포인트 추가:
    • HttpDelete 어트리뷰트를 사용하여 ID를 기반으로 Plant를 삭제하는 DeletePlant 메서드를 정의합니다. 이 메서드는 삭제할 Plant의 ID를 매개변수로 받습니다.
  2. 삭제 로직 구현:
    • 입력된 ID에 해당하는 Plant를 PlantStorePlantList에서 찾습니다. Plant가 존재하지 않는 경우 NotFound를 반환합니다.Plant가 존재하는 경우, 해당 Plant를 PlantList에서 제거하고 NoContent를 반환합니다. NoContent는 상태 코드 204를 의미하며, 성공적으로 처리되었으나 반환할 내용이 없음을 나타냅니다
  3. 테스트 및 검증:
    • Swagger UI를 통해 DeletePlant 엔드포인트를 테스트합니다. 특정 ID를 가진 Plant를 삭제하고, 삭제 후 No Content 상태 코드를 반환하는 것을 확인할 수 있습니다.Comment삭제 후 GetPlants 엔드포인트를 다시 호출하여 삭제된 Plant가 목록에서 제거되었는지 확인합니다.
  4. 실습 예시:
    • 위 코드는 ID를 기반으로 Plant를 삭제하는 DeletePlant 메서드의 구현 예시입니다.
[ProducesResponseType(StatusCodes.Status204NoContent)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[HttpDelete("{id:int}", Name = "DeletePlant")]
public IActionResult DeletePlant(int id)
{
    if (id == 0)
    {
        return BadRequest();
    }
    var plant = PlantStore.PlantList.FirstOrDefault(u => u.Id == id);
    if (plant == null)
    {
        return NotFound();
    }
    PlantStore.PlantList.Remove(plant);
    return NoContent();
​
}

이 방법을 통해 API에서 리소스를 효과적으로 관리할 수 있으며, 클라이언트는 API를 사용하여 데이터를 쉽게 추가, 조회, 수정 및 삭제할 수 있습니다.

HttpDelete 엔드포인트의 구현은 API의 기능성을 확장하고 사용자 경험을 개선하는 데 중요한 역할을 합니다.

프로젝트 리소스

https://github.com/kimdaewoong2022/MorePlants_WebAPI/tree/8aefcc4870f6f8650de20327c3c8d191d9bb0741