이 섹션에서는 첫 번째 API 엔드포인트를 생성하는 과정을 다룹니다.
엔드포인트는 예상대로 작동하며, Swagger UI를 통해 API를 쉽게 테스트하고 문서화할 수 있습니다.
- 모델 생성:
Models
폴더를 생성하고, 이 폴더 내에Plant
모델을 추가합니다.Plant
모델에는 두 개의 속성이 포함됩니다:ID
(식물의 ID)와Name
(식물의 이름).
- API 컨트롤러 업데이트:
PlantsAPIController
내에GetPlants
메서드를 생성하여Plant
객체의 리스트를 반환합니다.반환 타입은IEnumerable<Plant>
이며, 두 개의 식물 객체(여인초와 뱅갈고무나무)를 포함하는 새 리스트를 반환합니다.
- 라우팅 설정:
- API 컨트롤러에
Route
어트리뷰트를 추가하여 엔드포인트의 라우트를 정의합니다. 일반적으로api/[컨트롤러명]
형식을 사용합니다.
- API 컨트롤러에
- HTTP GET 어트리뷰트 추가:
- 엔드포인트가 HTTP GET 요청을 처리하도록
HttpGet
어트리뷰트를GetPlants
메서드에 추가합니다.
- 엔드포인트가 HTTP GET 요청을 처리하도록
- Swagger를 통한 테스트:
- Swagger UI를 사용하여 생성된 GET 엔드포인트를 테스트합니다. ‘Try it out’ 버튼을 클릭하고 ‘Execute’를 누르면, 정의된 두 개의 식물 객체가 반환됩니다.
- 결과 확인:
- 엔드포인트는 예상대로 작동하며, Swagger UI를 통해 API를 쉽게 테스트하고 문서화할 수 있습니다
// Plants 모델
public class Plant
{
public int Id { get; set; }
public string Name { get; set; }
}
// PlantsAPIController 내 GetPlants 메서드
[HttpGet]
public IEnumerable<Plant> GetPlants()
{
return new List<Plant>
{
new Plant { Id = 1, Name = "여인초" },
new Plant { Id = 2, Name = "뱅갈고무나무" }
};
}
라우팅 오류 발생 아래 코드 추가
// PlantsAPIController 컨트롤러에 라우팅 어트리뷰 추가해서 라우팅 오류 해결
[Route("api/PlantAPI")]
[ApiController]
public class PlantsAPIController : ControllerBase
{
//HttpGet, HttpPost...
}
이 코드는 Plant
모델과 PlantsAPIController
내 GetPlants
메서드의 기본 구조를 보여줍니다. HttpGet
어트리뷰트를 사용하여 HTTP GET 요청을 처리하고, Swagger를 통해 API 엔드포인트를 쉽게 테스트할 수 있습니다.
프로젝트 리소스 링크
https://github.com/kimdaewoong2022/MorePlants_WebAPI/tree/48620713c7fa1f087b8ce283b2a7ab4022f1253a
그리고 만약, 첫 .Net Core MVC 실행시 다음과 같은 오류가 발생하면…
다음 링크로 이동해서 크롬 브라우저 상태를 수정해주길 바란다.