MemberRestController 예제 클래스

이지윤·2022년 4월 11일
0

MemberRestController 예제 클래스

REST 컨트롤러를 위한 라이브러리 설정

  • 리소스 형식을 JSON(JavaScript Object Notation)으로 사용
  • Jackson-databind 를 사용하면 JSON 형식과 자바 빈즈와 상호 변환
    <pom.xml>

REST 컨트롤러에 사용되는 애노테이션

  • @RestController : REST API를 제공하는 컨트롤러를 의미
    -> @Controller와 @ResponseBody를 의미를 합침
  • @RequestBody : 컨트롤러 메서드 매개 변수에 @RequestBody가 애노테이션 -> 스프링은 요청된 HTTP request body를 해당 매개 변수에 바인딩
  • @ResponseBody : 컨트롤러 메소드가 @ResponseBody로 어노테이션 -> 스프링은 반환 값을 나가는 HTTP response body에 바인딩
  • 스프링은 요청된 메시지의 HTTP 헤더에 있는 Content-Type을 기반으로 HTTP Message converter를 사용 하여 반환 값을 HTTP response body로 변환
  • ResponseEntity : 전체 HTTP 응답을 나타내며 statusCode, headers, body 3가지 속성 값 지정 가능

JSON 연동 REST 컨트롤러

회원정보 조회, 회원정보 등록

  • MemberRestController.java
@RestController 
// Rest API를 제공하는 컨트롤러 의미
@RequestMapping(value="/member/rest") 
 //클래스 레벨로 기본 경로 /member 로 지정 http://localhost:8080/web/member/rest
public class MemberRestController {
	private static final Logger logger = 
			LoggerFactory.getLogger(MemberRestController.class);
//  MemberService 객체를 주입
	@Autowired(required=true)
	private MemberService memberService;
    }
  1. 회원정보 조회
    http://localhost:8080/web/member/rest/kang 요청
  • GET 방식 사용
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public ResponseEntity<StudentVO> readMember(@PathVariable String id) throws Exception {
	StudentVO student = memberService.readMember(id);
	logger.info(" /member/rest/{id} REST-API GET method called. then method executed."); 
	HttpHeaders headers = new HttpHeaders();
	headers.setContentType(new MediaType("application", "json", Charset.forName("UTF-8"))); headers.set("My-Header", "MyHeaderValue");
	return new ResponseEntity<StudentVO>(student, headers, HttpStatus.OK);
}

2.회원정보 등록
http://localhost:8080/web/member/rest 요청

  • Post 방식 사용
@RequestMapping(method = RequestMethod.POST)
public String createMemberPost(@RequestBody StudentVO vo) throws Exception {
	memberService.addMember(vo);
	logger.info(vo.toString());
	logger.info(" /member/rest/{id} REST-API POST method called. then method executed."); return "OK";
	}
}

크롬 브라우저의 Advanced REST client 확장 프로그램

profile
초보자

0개의 댓글