웹의 기존 기술과 HTTP프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일
구체적으로 HTTP URI를 통해 어떤 자원인지 명시하고, HTTP Method(GET,POST,PUT,PATCH,DELETE)를 통해 해당 자원을 처리하도록 설계 된 것 이다.
6가지 원칙
Uniform interface(인터페이스 일관성)
URI로 지정한 자원에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 것을 말한다.
HTTP 표준 프로토놀에 따르는 모든 플랫폼에서 사용이 가능
Stateless(무상태)
세션 정보나 쿠키를 별도로 저장하고 관리하지 안힉 때문에 API 서버는 들어오는 요청만 단순히 수행한다.
이전 요청이 다음 요청의 처리에 연관되면 안된다.
서비스의 자유가 높아지고 서버에서 불필요한 정보를 관리하지 않음으로써 구현이 단순해 진다.
Cacheable(캐시 처리 기능)
웹표준 HTTP프로토콜을 그대로 사용하므로 웹에서 사용하는 기존 인프라를 그대로 활용 할수 있다.
HTTP가 가진 캐싱 기능 적용이 가능하다. 그렇기에 대량의 요청을 효율적으로 처리할 수 있다.
Client-Server(클라이언트 - 서버 구조)
Client는 사용자 인증이나 컨텍스트(세션, 로그인정보)등을 직접 관리하고 책임진다.
REST 서버는 API 제공하고 비즈니스 로직 처리 및 저장을 책임진다.
각각의 역할이 확실히 구분되기 때문에 서로 간의 의존성이 줄어든다.
Layered System(계층화)
Client는 REST API Server만 호출합니다.
REST API Server는 다중 계층으로 구성된다.
보안, 로드밸런싱, 암호화 계층을 추가해 구조상의 유연성을 둘 수 있다.
Proxy, 게이트웨이 같은 네트워크 기반의 중간 매체를 사용할 수 있게 한다.
Code-On-Demand(opional)
server가 네트워크를 통해 client에 프로그램을 전달하면 client에서 실행될 수 있어야 한다
REST API 란
API(Application Programming InterFace)란 프로그램과 또다른 프로글매을 연결해주는 일종의 다리라고 볼수 있다.
REST기반으로 서비스 API를 구현한 것이다.
즉, HTTP요청을 보낼 때, 어떤 URI에 어떤 메소드를 사용할지 개발자들 사이에 널리 지켜지는 약속이다.
REST API 설계 기본 규칙
URI는 정보의 자원을 표현해야한다.
동사보다는 명사를, 대문잡다는 소문자
자료에 따라 단수명사, 복수 명사 구분
자원에 대한 행위는 HTTP Method(GET,PUT,POST,DELETE)로 표현한다.
URI에 HTTP Method가 들어가면 안된다.
URI에 행위에 대한 동사 표현이 들어가면 안됀다.
경로 부분 중 변하는 부분은 유일한 값으로 대체
REST API 설계 규칙
슬래시 구분자(/)는 계층 관계를 나타내는데 사용
URI 마지막 문자로 슬래시(/)를 포함하지 않는다.
하이픈 (-)은 URI 가독성을 높이는데 사용ㅎ나다.
밑줄( _ )은 URI에 사용하지 않는다.
URI 경로에는 소문자가 적합하다
파일확장자는 URI에 포함하지 않는다.
응답상태 코드
1xx : 정보응답
2xx: 성공응답
3xx:리다이렉션 메시지
4xx: 클라이언트 에러 응답
5xx: 서버 에러 응답
RESTful이란
RESTful은 일반적으로 REST라는 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어
'REST API'를 제공하는 웹 서비스를 'RESTful'하다고 할수 있다.
RESTful은 REST를 REST답게 쓰기 위한 방법으로, 누군가가 공식적으로 발표한 것이 아니다. 즉, REST원리를 따르는 시스템은 RESTFul이란 용어로 지칭된다.
Rest
웹의 기존 기술과 HTTP프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일 구체적으로 HTTP URI를 통해 어떤 자원인지 명시하고, HTTP Method(GET,POST,PUT,PATCH,DELETE)를 통해 해당 자원을 처리하도록 설계 된 것 이다.
6가지 원칙
REST API 란
API(Application Programming InterFace)란 프로그램과 또다른 프로글매을 연결해주는 일종의 다리라고 볼수 있다. REST기반으로 서비스 API를 구현한 것이다. 즉, HTTP요청을 보낼 때, 어떤 URI에 어떤 메소드를 사용할지 개발자들 사이에 널리 지켜지는 약속이다.
REST API 설계 기본 규칙
REST API 설계 규칙
응답상태 코드
RESTful이란
RESTful은 일반적으로 REST라는 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어 'REST API'를 제공하는 웹 서비스를 'RESTful'하다고 할수 있다. RESTful은 REST를 REST답게 쓰기 위한 방법으로, 누군가가 공식적으로 발표한 것이 아니다. 즉, REST원리를 따르는 시스템은 RESTFul이란 용어로 지칭된다.