본문 바로가기

Data Science : Study/2. Data Engineering (FastCampus)

3강-1. API 개요, REST API, web API, API 접근권한

반응형

썸네일

 

 

 

1. API 개요

Resource

- API를 통해 리턴되는 정보

- 하나의 resource 안에 여러개의 endpoint가 존재할 수 있다.

 

Endpoint

- 리소스에 access하는 경로/방법

- method resource (ex. get/campaigns/(campaign_id)/actions/send )

 

Method

해당 리소스에 접근하는 방식

- get : 해당 리소스를 조회하고 정보를 가져온다(많이 사용)

- head : 응답코드와 head만 가져온다 (API가 잘 작동하는지 확인할 때 사용)

- post : 데이터를 해당 API에 새로 생성하는 것

- put : 데이터를 해당 API에 업데이트하는 것

- delete

 

Parameter

endpoint를 통해 요청할 때 같이 전달하는 옵션

- header : 주로 authorization이 들어가야 한다.

- path : url 중 ? 앞에 나오는 부분 중 {} 안에 포함되는 변수

- query : ? 뒤에 나오는 변수

- resuest body : post 시에 많이 사용됨. 주로 JSON 형태.

 

 

 

2. REST API vs. web API

REST API

- 데이터를 주고 받는 인터페이스. API라고 하면 보통 REST API를 지칭한다.

  ex. 계산기: 보고 있는 ui, 계산하는 시스템 : ui와 시스템이 서로 정보를 주고 받는 것!

 

* REST API 모델

 

web API

- 웹을 통해 외부 서비스들로부터 정보를 불러오는 API

- 과정

  ① 컴퓨터에서 브라우저를 켜서 주소를 입력 : http라는 프로토콜로 브라우저에 입력

  ② 입력한 정보가 서버에 보내짐 request(요청)

  ③ 서버는 return 값을 보내줌(응답)

- 요청하고 받는 데이터 타입은 다양

  → 웹사이트는 http 프로토콜을 사용하는 rest api 기반으로 구축됨

 

 

 

3. API 접근 권한

authentication : identity가 맞다는 증명. 이 사람이 누구다, 라는 것을 증명.

authorization : API를 통한 어떠한 액션을 허용. 데이터를 어느 정도까지 줄 것인지 결정.

→ API가 증명을 해도(authentication) 어떠한 액션에 대해서는 데이터를 주지 않을 수 있다(not authorization).

 

보안 방인 없을 경우

- delete 이슈

- 제3자 데이터 유출

- 사용, 정보 가져감에 대한 트래킹 불가

 

접근권한 요청 시에는 API key를 같이 주면서 요청한다

- API key는 request url 또는 request 헤더에 포함되는 긴 스트링

  ex. 구글 맵 API 예제 : 주소 블라블라~~key=YOUR_API_KEY <- 여기!

 

Baseic Auth

- 유저네임 패스워드 같은 정보를 합친 것을 base64로 인코딩(암호화)한것을 헤더 안에 포함

Oauth 2.0 : 요새 많이 씀!

유저 - 쓰고자 하는 앱 - 그를 위핸 SNS 로그인한 SNS

① 유저가 SNS 로그인 요청

② 앱이 SNS에 유저에게 동의받은 내용과 함께 필요정보 요청

③ SNS는 확인 후 요청받은 정보 전달

 

 

 

 

 

이런 내용이 더 있으면 좋겠다, 이건 뭐라는지 모르겠다, 그 외의 어떤 얘기든 댓글로 남겨주세요!

 

 

 

반응형