REST API란,
Representational State Transfer(REST),
REST아키텍처의 제약 조건을 준수하는 애플리케이션 프로그래밍 인터페이스
Http통신에 CRUD(Create, Read, Updated, Delete)요청을 Resource와 Method로 표현해 특정한 형태로 전달하는 방식이다.
구성
1. Resource 2. Method 3. 표현(JSON, XML)
특징
1. 일관된 인터페이스 - 특정 언어나 기술에 종속X
2. 무상태성 - 서버가 클라이언트의 상태를 저장하지 않음(요청에 대해 처리만 해주면 됨)
3. 캐시 처리 가능 - Http 웹 표준을 사용하기 때문에 Http에서 사용하는 캐시 기능을 사용할 수 있음
4. 서버, 클라이언트 구조 - 각각의 역할이 명확하게 구분됨(서버는 API, 클라이언트는 유저 관련 처리)
5. 자체 표현 구조 - 자체 표현으로 직관적인 이해 가능(해당 요청이 어떤 행위를 하는지 쉽게 파악 가능)
6. 계층 구조 - 서버와 클라이언트가 분리되어 있기 때문에 중간 매체(프록시 서버, 암호화 계층 등)를 사용할 수 있어 자유도가 높음
설계 규칙(REST-ful API)
REST-ful API - 올바르게 REST API를 설계하는 것
1. url은 정보의 자원만을 표현함(행위는 포함하지 않음)
ex. http://hanghae99.com/see_teams X
ex. http://hanghae99.com/teams O
1-1 슬래시로(/) 계층관계를 표현하고, 마지막에 슬래시를 포함하지 않는다.
ex. http://test.com/users/name/banana/ X
ex. http://test.com/users/name/banana O
1-2 언더바( _ )을 사용하지 않고 대쉬( - )를 사용하지만 최소한으로 사용한다.
1-3 소문자를 사용한다.
1-4 동사 대신 명사를 사용한다. 하지만 컨트롤 자원을 의미하는 URL은 예외
1-5 파일 확장자는 포함하지 않는다.
2. 자원에 대한 행위는 HTTP Method로 표현한다.(URL에 쓰면 안됨)
GET, POST, PUT, PATCH, DELETE
'CS' 카테고리의 다른 글
쓰레드 특징 (프로세스와 비교) (1) | 2024.01.12 |
---|---|
ORM, JPA, Spring Data JPA 란 (0) | 2022.06.09 |
DB Index (0) | 2022.05.27 |
해시 맵(개별 체이닝, 오픈 어드레스) (0) | 2022.05.18 |
랜덤 값 충돌 (0) | 2022.05.18 |