1. Representational State Transfer
- 웹 어플리케이션 개발 방법론 중의 하나로서 클라이언트와 서버간의 상태정보를 표현하는 방식을 의미
( 어제까지 개발 방법론이 SOAP임 )
REST는 개발방법론 중 하나
REST가 트렌드지만
SOAP은 기본이라서 할 줄 알아야한다
1) SOAP 아키텍쳐
클라이언트 --------- 서버
(웹브라우저)
2) REST 아키텍쳐 (XML/ JSON 통신) (XML은 잘 안씀) (요청 @RequestBody, 응답 @ResponsBody)
@RestController - @Controller, @ResponseBody를 결합
2. REST 디자인 가이드 구글링
디자인 패턴 종류 ( MVC, 빌더패턴, 프론트 컨트롤러, 싱글톤 ) - 면접에도 나올 수 있음
3. REST 표현
1) 데이터는 URI에 포함되어 전달된다
ex> 이전 SOAP 방식에서 회원을 삭제하는 작업
URL에 쿼리스트링
ex> REST 방식에서 회원을 삭제하는 작업
REST는 URL에 값을 전달
2) 클라이언트 요청 방식
ex> 이전 SOAP 방식
GET : 조회
POST : 생성(저장), 수정, 삭제
REST 방식 ( 이제 URL로 어떤 기능인지 표시되지 않고 메서드로 표시된다, 하나만 만들어서 기능별로 쓰는게 REST 장점)
GET : 조회
POST : 생성(저장)
PUT : 수정
DELETE: 삭제
기본적으로 form을 사용하는 html에서는 GET/POST만 지원
따라서 도구가 필요하다. ( curl, postman, 크롬브라우저의 플러그인 Talend Test API )
4. REST 실습
1) 의존성
2) application.properties
REST 프로젝트 실행
크롬 Talend Test API 들어가서
리퀘스트에서 URL 입력 후 send (서버는 켜놔야함)
리퀘스트를 여러개 생성해서 GET, POST, PUT, DELETE에 따라 사용
lombok 라이브러리
lombok은 어노테이션 기반으로 코드를 자동완성 해주는 라이브러리
lombok 설치 후 어노테이션쓰면 자동으로 DTO의 생성자 게터세터 toString 다 만들어줌
logger, 빌더패턴도 제공
가 .의존성 등록
나 .현재 사용 중인 sts(eclipse)에 lombok을 설정
lombok 홈페이지에 가서 jar 파일 다운 ( c 밑에 사용자 밑에 ssginc58 안에 받음)
jar 다운로드 후 cmd창에서 저장 위치로 이동
lombok.jar 실행
java -jar lombok.jar 치면 창이 뜸
우리가 쓰는 실행파일을 찾아서 넣는다 ex> sts를 사용하면 sts 실행파일을 찾아서 선택 후 - install
성공하면 sts가 있는 파일에 lombok이 들어가있다
작업하는 프로젝트 가서 maven update하고 sts 재시작
lombok 사용 (기본 방식)
lombok 빌더패턴 방식 ( 권장 )
5. mysql 연동
DTO에서 lombok 써서 생성자, 게터세터, toString 전부 생략
6. 파라미터 전달
- REST는 기본적으로 데이터를 URI에 포함되어 전달된다.
ex > SOAP 방식
ex > REST 방식
GET http://localhost:8090/app/persons/10 => 아이디가 10인 데이터를 찾는다
GET http://localhost:8090/app/persons/20
변수로 받아준다
@GetMapping("/persons/{변수}") < == URL은 마지막 값까지 포함
@PathVariable("변수") String id
파라미터 전달 실습
ex>
http://localhost:8090/app/persons/10/부산
ex>
http://localhost:8090/app/persons/10/address/부산
6. 데이터 저장 ( Post 방식 )
- 전달되는 데이터는 JSON 형식
{
* "id": 50,
* "username":"유관순", ===> PersonDTO에 저장
* "birthdate":"2024-12-24"
* }
-> API test body에 붙여준다
- header에 전달되는 타입을 지정해야 된다
Content-Type: application/json
-> API test header에 붙여준다
데이터 저장 ( Post 방식 ) 실습 ( API tester headers 적기 )
7. 데이터 수정 ( PUT 방식 ) ( API tester headers 적기 )
- PUT 방식
- JSON + @PathVariable(where절에서 사용) 같이 사용 가능
- header에 전달되는 타입을 지정해야 된다
Content-Type: application/json
8. 데이터 삭제
- DELETE 방식
'REST' 카테고리의 다른 글
REST 기반의 Spring Security 적용 ( 보통 카피해서 씀 ) (0) | 2024.06.26 |
---|---|
필터링(filtering) (0) | 2024.06.26 |
I18N (0) | 2024.06.26 |
폼 유효성 체크 (0) | 2024.06.26 |
POST 응답처리 개선하기 (0) | 2024.06.25 |