API
- 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할수 있게 만든 인터페이스
- API를 통해 소스 및 DB에는 접근하지 못하게 하고 해당 프로그램을 활용할수 있도록 제공해주는것
RestFul(Representational State Transfer) API
- 서버나 서비스에 존재하는 모든 자원(이미지, 동영상, DB자원)에 고유한 uri를 부여해 활용하는 것 = 자원을 정의하고 자원에 대한 주소를 지정하는 방법론을 의미
url:
경로를 의미
데이터를 얻거나 사용하기위해 접속해야하는 경로
method:
그 경로에서 행하는 행동
message
서버에서 DB에 작업을 하고 반드시 클라이언트에게 response을 해줘야 하는데.
request는 클라이언트가 서버로 데이터를 요청하는 것을 말하고,
response는 서버가 클라이언트에게 데이터를 전달해주는 것을 말한다.
이 모든것이 json으로 이루어진다고 생각하면된다.
장점
HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구출할 필요가 없다.
HTTP 프로토콜의 표준을 최대한 활용하여 여러 추가적인 장점을 함께 가져갈 수 있게 해준다.
HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다.
Hypermedia API의 기본을 충실히 지키면서 범용성을 보장한다.
REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.
여러가지 서비스 디자인에서 생길 수 있는 문제를 최소화한다.
서버와 클라이언트의 역할을 명확하게 분리한다.
단점
표준이 존재하지 않는다.
사용할 수 있는 메소드가 4가지 밖에 없다.
HTTP Method 형태가 제한적이다.
브라우저를 통해 테스트할 일이 많은 서비스라면 쉽게 고칠 수 있는 URL보다 Header 값이 왠지 더 어렵게 느껴진다.
구형 브라우저가 아직 제대로 지원해주지 못하는 부분이 존재한다.
PUT, DELETE를 사용하지 못하는 점
pushState를 지원하지 않는 점
출처:
https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html
'Api 개발 > flask' 카테고리의 다른 글
API 소스코드 lambda에 배포하기 (0) | 2023.01.10 |
---|---|
영화추천 api 만들기 즐겨찾기 기능 (0) | 2023.01.10 |
영화추천 모듈화 개발 (0) | 2023.01.10 |
MySQL에서 admin 계정만들기 (0) | 2023.01.04 |
플라스크 프레임워크 설치 및 가상환경 구축 (0) | 2023.01.03 |