REST란?
HTTP Method
HTTP Method | 용도 | Spring Annotation | 기타 | |
---|---|---|---|---|
Web | REST | |||
GET | 정보를 가져올 때 | @Get | @GetMapping | URL을 통해 파라미터 형식으로 전달 |
POST | 정보를 변경할때 | @Post | @PostMapping | HTTP Request Body에 변경할 내용을 포함해서 서버로 전달 |
PUT | 정보를 신규로 저장할 때 | @Put | @PutMapping | HTTP Request Body에 신규로 저장할 내용을 포함해서 서버로 전달 |
DELETE | 정보를 삭제할때 | @Delete | @DeleteMapping | URL을 통해 파라미터 형식으로 전달 |
- REST 이전에는 POST 방식으로 데이터를 변경(신규 추가, 변경, 삭제)하는 작업을 수행함
- PUT, DELETE는 REST 이전에 보안 위배로 등록되어 활용할 수 없었으며 현재도 막는 기업들이 있음
URI 규칙
GET Method에서 파라미터 처리
파라미터 종류 | URL 형식 | Spring Annotation | 예시 |
---|---|---|---|
Request Parameter | /index=1&page=2 | @RequestParam | @GetMapping("read") public ModelAndView getFactoryRead(@RequestParam("no") int factroyId, SearchCriteria criteria) { //... } |
Path Variable | /index/1 | @PathVariable | @PostMapping("delete/{idx}") @ResponseBody public JsonResultVo postDeleteFactory(@PathVariable("idx") int factoryIdx) { return factoryService.deleteFacotryData(factoryIdx); } |
Request Body의 형식
형식 | 유형 | 설명 |
---|---|---|
텍스트 | JSON | REST 방식의 출현, AJAX의 출현을 JSON 형식이 현재 가장 대세 과거 JSON은 UI에서 사용하던 기술이나 이제는 Server 간 데이터 송수신에서도 JSON을 사용 |
XML | 과거 XML은 이기종 시스템(Server)간 데이터 송수신시 가장 완벽한 포맷으로 사용 XSD 등의 스키마를 통해 데이터의 구조 및 유효성이 보장 XML은 파싱에 과도한 비용이 소요되고 무겁다는 인식으로 최근은 사용하지 않음 | |
PLAIN | JSON, XML도 엄밀하게 따져보면 PLAIN TEXT 어떤 것이든 PLAIN TEXT로 내용을 담을 수 있음 | |
바이너리 | IMAGE | 이미지 파일을 송수신할 때 Request & Response Body에는 이미지 바이너리 데이터가 포함 파일의 포맷은 HTTP Header를 통해서 전달되며 웹 브라우저는 헤더를 보고 어떤 포맷인지를 확인한 후 바이너리를 로딩하여 처리 |
기타 미디어 | MP4 등도 Request & Response Body에 포함이 가능하며 HTTP Header를 보고 결정 웹 브라우저인 경우 HTTP Header를 보고 알아서 동작함 웹 브라우저가 아닌 경우 개발자가 알아서 처리함 |