Rest란
자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다.
Rest는
1. 자원 중심으로 설계됩니다.
자원은 문서,이미지 등 다양한 유형의 콘텐츠가 될 수 있고,
각 자원은 고유한 URI로 식별됩니다.
2. 해당 자원에 대해서 어떤 작업을 할지를 HTTP Method를 이용해
서버와 클라이언트간의 데이터를 주고받을 수 있습니다.
- 자원(Resource): URI
- 자원에 대한 행위(Verb): HTTP Method
- 자원에 대한 행위의 표현(Representations)
HTTP Method의 종류에는
자원 생성은 POST,
조회는 GET,
전체 수정은 PUT,
부분 수정은 PATCH,
삭제는 DELETE 가 있습니다
Rest의 특징에는
자체 표현 ,
무상태성,
캐시 처리 가능 등의 특징이 있습니다.
Rest의 장점에는
HTTP 프로토콜의 인프라를 그대로 사용하기 때문에 Rest API를 구현하기 위한
인프라가 필요가 없고,
요청 메시만 보고도 쉽게 이해를 할 수 있다는 장점을 가지고 있습니다.
Rest의 단점에는
사용할 수 있는 HTTP Method가 제한적이고,
구형 브라우저에서 아직 제대로 지원하지 못하는 부분이 있다는 단점이 있습니다.
API란
서로 다른 소프트웨어 응용 프로그램이 통신을 할 수 있도록 하는 규칙입니다.
데이터를 주고받을 때 필요한 방법을 정의하는 것이기도 합니다.
Restful API란
Rest의 설계 규칙을 일부분만 지키면 Restful 한 api라고 불리지 못하고
설계 규칙을 올바르고 일관되게 개발한 API를 Restful API라고 불립니다.
Rest api 설계 규칙의
첫 번째는
URI는 정보의 자원을 표현해야 하는데
이때 자원은 소문자로 표기해야 하고 단일 자원이면 단수 명사,
자원의 집합이면 복수 명사를 사용해야 합니다.
두 번째는
자원에 대한 행위는 HTTP Method로 표현을 해야 합니다.
이때 URI에 CRUD 기능을 포함되거나
CRUD기능을 나타내는 동사를 사용하면 안 됩니다.
세 번째는
URI 경로 중 변하는 부분은 리소스를 식별하는 고유의 값으로 대체합니다.
네 번째는
슬래쉬 구분자를 통해 계층 관계를 나타냅니다.
이때 구분자는 마지막 부분에는 사용하지 않습니다.
다섯 번째는
URI에는 가독성을 높이는 하이픈을 사용합니다.
여섯 번째는
URI에 파일 확장자, 밑줄은 사용하지 않습니다.
일곱 번째는
리소스 간에는 연관 관계가 있는 경우에는
/리소스명/리소스 ID/관계가 있는 다른 리소스 명
으로 작성을 합니다.
이런 설계 규칙이 정해져 있습니다.
'Java' 카테고리의 다른 글
객체 지향 프로그램(OOP) (0) | 2024.08.30 |
---|---|
Getter, Setter 어노테이션 (0) | 2024.08.29 |
Java 관심사 분리(SOC), 관점 지향 프로그래밍(AOP) 간단하게 (0) | 2024.08.28 |
Java Spring, 객체 지향 프로그래밍 (7) | 2024.08.27 |
MVC, 3 Layer (0) | 2024.08.21 |