controller
이름 지정
@Controller에 이름을 넣을 수 가 있는데,
위 처럼 이름이 cats 라고 지정이 되면, 해당 컨트롤러는
http://localhost:8000/cats 의 엔드포인트를 수신한다.
확인
컨트롤러에 이름을 지정해주니 /를 받는 주소가 없어서 not found가 발생한다.
컨트롤러에 명시된 cats를 URI에 넣게 되면
cats 엔드포인트의 GET메소드를 호출하게 되어서 Hello World가 찍히게 된다.
controller URI 조합
URI조합하기
AppController는 /cats 엔드포인트를 수신하고,
내부의 @Get(’hello) 데코레이터는 /cats/hello 엔드포인트를 수신한다.
따라서 http://localhost:8000/cats/hello 를 요청하게 되면 Hello Wolrd! 가 찍히게 될 것.
테스트하기
보는 바와 같이 데코레이터의 괄호에 넣은 단어로 URI를 조합하였다.
요청 객체
@Req
컨트롤러 메소드에 매개변수를 어노테이션으로 넣을 수 있다.
이 때 Request는 Express것을 임포트 해서 사용한다.
요청하고 콘솔도 찍어보면
이렇게 req객체가 어떻게 날아오는 지 확인할 수 있다.
body도 값을 가져올려면 req.body 로 가져왔었는데,
원한다면 @Body 로 매개변수로도 받아올 수 있다.
동적 라우팅
@Param
@Param 어노테이션을 사용하면 동적라우팅에 들어오는 값들을 매핑할 수 있다.
postman 테스트
메소드에
new Logger.log(Param); 을 추가해서 동적라우팅으로 어떻게 값을 받아오는 지 확인해보자.
postman으로 기존 요청주소에 :id 에 바인딩 될 수 있는 값을 넣어보고 테스트를 해보면
리턴 값이였던 Hello World! 가 찍히는 것을 확인할 수 있고
:id 에 넣어줬던 값은 JSON 형태로
키 & 밸류 형태로 전달 받은 것이 확인된다.
응용
그럼 이렇게
hello/:id/:name
으로 설정하면 Param에는 값이 어떻게 담기게 될까???
이렇게 JSON데이터로 받게 된다.
중요한 점을 객체로 담을수 있다는거
실제로는 비즈니스로직은 서비스로 넘겨서 분리시켜준다.
추가 데코레이터
Post도 적용가능
공식 문서인데, 이렇게 @Get 뿐만 아니라 @Post 도 가능하다!
상태코드 추가가능
요청의 응답에 상태 코드 또한 담을 수 있다.
추가 기능은 문서 확인
되게 많은 기능이 있어서 추가 기능은 들어가서 확인