REST API
- HTTP - GET Method
- 주소 창에 파라미터 노출
- 브라우저에서 주소에 대한 캐시가 이루어지므로 빠르게 정보를 가져올 수 있다.
@GetMapping("/getParameter")
public String getParameter(@RequestParam String id, @RequestParam(name = "password") String pwd){ //query string으로 받을 때
return id + pwd;
}
@GetMapping("/getMultiParameter")
public SearchParam getMultiParameter(SearchParam searchParam){
//객체로 받을 때
return searchParam; //json 응답 : Spring boot는 기본적으로 잭슨 라이브러리 내장
}
- HTTP - POST Method
- 주소 창에 파라미터가 노출 X
- GET 방식에서는 주소 길이 제한이 있지만 POST는 그보다 길게 사용가능
- 브라우저가 주소 캐시를 하지 못한다.
- HTML의
<form>
태그나 ajax를 통해 POST 요청 - 받는 데이터 형식 : json, xml, multipart-form, text-plain 등
@PostMapping(value = "/postMethod") //produces = {"application-json"} : json 외에 받을 데이터 형식을 지정
public SearchParam postMethod(@RequestBody SearchParam searchParam){ // http post body => data
return searchParam;
}
- HTTP - PUT/PATCH Method
- POST와 마찬가지로 body에 데이터가 들어있다.
- 주로 업데이트에 사용한다.
- 스프링에 @PutMapping, @PatchMapping와 같은 어노테이션을 지원하기 때문에 url를 지정할 수 있지만 REST API에서는 이러한 용도로 주소를 할당해서 사용하진 않는다.
- HTTP - DELETE Method
- GET과 마찬가지로 주소에 파라미터가 들어간다.
- 데이터를 삭제할 때 사용한다.
- REST의 개념
- HTTP 프로토콜에 있는 Method를 활용한 아키텍처 스타일
- HTTP Method를 통해 Resource를 처리하는 방법에 대해 정의한 것
- CRUD를 통한 Resource를 조작할 때 사용한다.
- 보통 REST API는 @PathVariable로 나타낸다.
HTTP Method | 동작 | URL 형태 |
---|---|---|
GET | 조회(SELECT * READ) | /user/{id} |
POST | 생성(CREATE) | /user |
PUT/PATCH | 수정(UPDATE * CREATE) | /user |
DELETE | 삭제(DELETE) | /user/{1} |