Spring Boot Controller 작성

devyunie·2024년 8월 22일

SpringBoot

목록 보기
3/13
post-thumbnail

Controller Layer 요약

  • Spring 레이어드 아키덱쳐 -> 프레젠테이션 영역

프레젠테이션 계층

  • 상황에 따라 유저 인터페이스 계층이라고도 한다.
  • 클라이언트와의 접점이 된다.
  • 클라이언트로부터 데이터와 함께 요청을 받고 처리 결과를 응답으로 전달하는 역할이다.

  • 클라이언트의 요청에 따라 모델의 상태를 변경하는 영역
  • path에 해당하는 메서드를 작성하는 영역
  • path에 대한 라우팅을 담당하고 클라이언트의 요청을 비즈니스 로직을 담당하는 Service레이어에서 호출하여 해당 결과를 클라이언트에게 응답

Conteroller Layer

  • 클라이언트와 서버간의 접점
  • 클라이언트의 요청을 받고 해당 요청에 대한 응답을 처리함
  • 각 요청에 해당하는 URL 메서드를 작성하는 영역

Request Controller 작성


@Controller

  • 해당 클래스가 컨트롤러 레이어임을 명시 , 단 응답 데이터가 HTML 형식

@ResponseBody

  • 응답의 데이터 타입을 HTML이 아니라 JSON으로 지정하는 형식

@RestController

  • REST API개발을 위한 어노테이션 Response의 contentType으로 HTML 반환 X
  • @Controller + @ ResponseBody JSON 형식의 데이터를 반환하는 컨트롤러임을 명시

@RequestMapping

  • HTML 요청에 클래스와 메서드를 URL으로 매핑하기 위한 어노테이션

속성

  • value : 매핑할 URL 패턴
  • method : 매핑할 HTTP 메서드
  • params : 매핑할 요청의 파라미터
  • headers : 매핑할 요청의 헤더
  • consumes : 매핑할 요청의 본문 MIME 타입
  • produces : 매핑할 요청의 응답 본문 MIME 타입
@RequestMapping(value="/main", method = "RequestMethod.GET")
  • HTTP GET 방식의 localhost 4000/main/** 받아올수 있다.
    Ex : REST API 호출
@RequestMapping("/basic")
public class BasicController {
	@RequestMapping(value="/first", method=RequestMethod.GET)
	public String firstMethod(){
		return "첫번째 REST API 요청 응답";
	}
}

실행 결과 화면

  • Result -> GET: 127.0.0.1:4000/basic/first

  • Error Result -> GET: 127.0.0.1:4000/basic/second 404 Error

  • Error Result -> POST: 127.0.0.1:4000/basic/first 405 Error

  • @RequestMapping(value="/main", method = "RequestMethod.GET")
    코드가 길어지는것을 방지 하기 위해 Request Method 세부적인Mapping 이용


0개의 댓글