티스토리 뷰
REST API
REST API란 REST를 기반으로 만들어진 API를 의미
REST란
REST (Represnetational State Transfer)의 약자
자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미함
- HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)를 명시하고
- HTTP Method(GET, POST, PUT, DELETE, PATCH)를 통해
- 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미함
CRUD Operation
- Create : 데이터 생성 (POST)
- Read : 데이터 조회(GET)
- Update : 데이터 수정(PUT, PATCH)
- Delete : 데이터 삭제(DELETE)
REST 구성 요소
1. 자원(Resource) : HTTP URI
2. 자원에 대한 행위(Verb) : HTTP Method
3. 자원에 대한 행위의 내용(Representations) : HTTP Message Pay Load
REST의 특징
1. Server - Client : 서버-클라이언트 구조
2. Stateless : 무상태
3. Cacheable : 캐시 처리 가능
4. Layered System : 계층화
5. Uniform Interface : 인터페이스 일관성
REST 장단점
장점
- HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구축할 필요가 없음
- HTTP 프로토콜의 표준을 최대한 활용하여 여러 추가적인 장점을 함께 가져갈 수 있음
- HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용 가능
- Hypermedia API의 기본을 충실히 지키면서 범용성을 보장
- REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있음
- 여러 가지 서비스 디자인에서 생길 수 있는 문제를 최소화함
- 서버와 클라이언트의 역할을 명확하게 분리함
단점
- 표준 자체가 존재하지 않아 정의가 필요함
- HTTP Method 형태가 제한적
- 브라우저를 통해 테스트할 일이 많은 서비스라면, 쉽게 고칠 수 있는 URL보다 Header 정보의 값을 처리해야 하므로 전문성이 요구됨
- 구형 브라우저에서 호환이 되지 않음(익스플로어)
REST API
API 또는 응용 프로그래밍 인터페이스는 서로 다른 응용 프로그램 간의 상호 작용 및 통신을 허용하는 기능과 규칙을 제공API는 요청과 응답을 통해 애플리케이션 사이를 중재함
1. XML-RPC :: 네트워크 간의 기능 교환을 허용함. XML을 사용하여 클라이언트에서 서버로 정보를 전송하기 위한 응답/요청 및 HTTP 프로토콜을 설명함2. JSON-RPC :: XML과 유사한 경량 RPC. 프로토콜은 JSON으로 인코딩됨. 비동기응답으로 서버에 대한 호출을 수신할 수 있음3. SOAP :: 네트워크에서 서비스를 구현할 때 구조화된 정보를 교환하기 위한 간단한 개체 엑세스 프로토콜. SOAP은 운영 체제에서 인증, 권한 부여 및 프로세스 통신을 위해 XML을 사용함4. REST API :: 클라이언트-서버 구현을 독립적으로 사용하는 아키텍처 스타일. REST는 통신에 HTTP 프로토콜을 사용함
RESTful API
RESTful이란 REST의 원리를 따르는 시스템을 의미함REST를 사용했다하여 모두가 RESTful한것은 아님REST API의 설계 규칙을 올바르게 지킨 시스템을 RESTful하다 말할 수 있음
HTTP Method (GET, POST, PUT, DELETE, PATCH 등)
1. GET Method
GET은 보통 조회를 할 때 사용함 => SELECT에 해당
2. POST Method
POST는 보통 데이터를 추가할 때 사용한다 => INSERT에 해당
3. PUT Method
PUT은 데이터를 수정할 때 사용함 => UPDATE에 해당
수정하고 싶은 정보를 PUT으로 요청함 : POST와 동일한 URL로 요청하더라도, HTTP 메소드가 다르기 때문에 다르게 동작함
4. DELETE Method
DELETE는 데이터를 삭제할 때 사용함 => DELETE에 해당
- Total
- Today
- Yesterday
- Math 클래스
- python
- IndexError
- StringBuffer 클래스
- Date 클래스
- Calendar 클래스
- 문자열함수
- 리스트
- Format 클래스
- StringBuilder 클래스
- Pattern 클래스
- 역반복문
- 딕셔너리
- StringTokenizer 클래스
- 포장 클래스
- 스레드 스케줄링
- 리스트연산자
- not_in
- 자료형
- Objects 클래스
- 요소선택
- 함수
- 순환할당
- 프로그램
- FALSE
- java.time.package
- Random 클래스
- Arrays 클래스
- 기본 API 클래스
- 파이썬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |