이 섹션에서는 ID를 기반으로 단일 Plant 정보를 조회하는 API 엔드포인트를 구현하는 방법을 다룹니다.
- 개별 Plant 조회 엔드포인트 추가:
- 기존의 모든 Plant를 반환하는
GetPlants
메서드와 별개로, 특정 ID를 가진 Plant만을 반환하는GetPlant
메서드를 추가합니다.GetPlant
메서드는 매개변수로 ID를 받아, 해당 ID와 일치하는 Plant를 반환합니다. 이때 LINQ의FirstOrDefault
메서드를 사용하여 조건에 맞는 첫 번째 Plant를 찾거나, 없으면 null을 반환합니다.
- 기존의 모든 Plant를 반환하는
- 라우트 설정:
- 두 개의 GET 메서드(
GetPlants
와GetPlant
)가 있을 때, Swagger 등의 도구에서 라우트 충돌을 방지하기 위해GetPlant
메서드에[HttpGet("{id}")]
어트리뷰트를 추가하여 ID를 기대하는 것을 명시합니다.
- 두 개의 GET 메서드(
- 테스트 및 검증:
- 애플리케이션을 실행하고 Swagger UI를 통해
GetPlant
엔드포인트를 테스트합니다. ID를 매개변수로 제공하여 특정 Plant 정보를 성공적으로 조회할 수 있습니다.
- 애플리케이션을 실행하고 Swagger UI를 통해
- 소스 코드
- 애플리케이션을 실행하고 Swagger UI를 통해
GetPlant
엔드포인트를 테스트합니다. ID를 매개변수로 제공하여 특정 Plant 정보를 성공적으로 조회할 수 있습니다.
- 애플리케이션을 실행하고 Swagger UI를 통해
[HttpGet]
public IEnumerable<PlantDTO> GetPlants()
{
return PlantStore.PlantList;
}
[HttpGet("{id:int}")]
public PlantDTO GetPlant(int id)
{
return PlantStore.PlantList.FirstOrDefault(v => v.ID == id);
}
이 방법을 통해 API 사용자는 필요에 따라 전체 Plant 목록 또는 특정 Plant 정보를 조회할 수 있게 됩니다. 이는 API의 유연성을 높이고, 사용자의 다양한 요구 사항을 충족시킬 수 있는 중요한 기능입니다.
프로젝트 리소스
https://github.com/kimdaewoong2022/MorePlants_WebAPI/tree/853d0bfa7123afb79296f536017ae75801f0238b