이 섹션에서는 API에서 리소스를 삭제하는 방법을 다룹니다. HTTP DELETE 요청을 사용하여 특정 ID를 가진 Plant를 삭제하는 엔드포인트를 구현합니다.
- Http Delete 엔드포인트 추가:
HttpDelete
어트리뷰트를 사용하여 ID를 기반으로 Plant를 삭제하는DeletePlant
메서드를 정의합니다. 이 메서드는 삭제할 Plant의 ID를 매개변수로 받습니다.
- 삭제 로직 구현:
- 입력된 ID에 해당하는 Plant를
PlantStore
의PlantList
에서 찾습니다. Plant가 존재하지 않는 경우NotFound
를 반환합니다.Plant가 존재하는 경우, 해당 Plant를PlantList
에서 제거하고NoContent
를 반환합니다.NoContent
는 상태 코드204
를 의미하며, 성공적으로 처리되었으나 반환할 내용이 없음을 나타냅니다
- 입력된 ID에 해당하는 Plant를
- 테스트 및 검증:
- Swagger UI를 통해
DeletePlant
엔드포인트를 테스트합니다. 특정 ID를 가진 Plant를 삭제하고, 삭제 후No Content
상태 코드를 반환하는 것을 확인할 수 있습니다.Comment삭제 후GetPlants
엔드포인트를 다시 호출하여 삭제된 Plant가 목록에서 제거되었는지 확인합니다.
- Swagger UI를 통해
- 실습 예시:
- 위 코드는 ID를 기반으로 Plant를 삭제하는
DeletePlant
메서드의 구현 예시입니다.
- 위 코드는 ID를 기반으로 Plant를 삭제하는
[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