메뉴 닫기

REST API 가 무엇인가요? -실사용 예제로 쉽게 사용법 익히기

REST API 를 인터넷에서 찾아보면.. 아래처럼.. 멋진 말로 정의가 써 있는데 이게 실제로 사용 할 때 어떻게 하는지 감이 오지 않아서 UNSPLASH 에서 제공하는 API 설명서를 보면서 쓰는 법을 적어 두려고 합니다.

Representational State Transfer(REST)는 API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처입니다. REST는 처음에 인터넷과 같은 복잡한 네트워크에서 통신을 관리하기 위한 지침으로 만들어졌습니다.

https://aws.amazon.com/ko/what-is/restful-api/

REST API 예제 UNSPLASH API 확인해 보기

우선 UNSPLASH API 개발자 사이트에 가서(링크) 문서를 한번 확인 해 봅니다.

Getting started 항목에서 뭐 account 만들고 등등 이 나와있는데 그냥 따라 해주면 됩니다. 여기를 참고해서 가입해도 됩니다.

Schema 항목에 보면 Location 항목이 있습니다. 보통 API 의 구성 요소가 url, header, parms 로 이루어져 있어서 이 3가지만 요청 하면 대부분 JSON(혹은 XML) 형태의 값으로 반환해 줍니다.

UNSPALSH 에서는 저 URL이 Location 항목에 써 있고 JSON 형식으로 반환 해준다고 알려주고 있습니다.

REST API

그리고 보통 대부분의 API는 인증 절차를 거치는데 아래 설명서를 보면 header에 Authorization 을 아래처럼 추가하라고 하고 있습니다.

마지막으로 실제 기능들을 제공해주는 항목들이 뒤에 있습니다.

예를 들어 Search photos 의 기능을 보면 아래처럼 써 있습니다.

GET /search/photos, parmaeters 등이 그냥 써 있는데 처음에 이것만 보고 뭐 하라는 건지 알 수가 없었습니다.

아래 파이썬(python) 예제 코드로 사용법을 간단히 적어둬서 나중에 기억해서 써먹으려고 합니다.

파이썬(PYTHON) 실제 사용 코드 예제

import requests

unsplash_url = 'https://api.unsplash.com/'
access_key = 'YOUR_ACCESS_KEY'
headers = {'Authorization':'Client-ID '+ access_key}
para = {'query':'lion'}

respons = requests.get(url=unsplash_url+'search/photos/',params=para, headers= headers)

print(tyep(respons))
print(respons)
print(respons.json()['results'][0]['urls']['full'])

파이썬에서 requests 모듈을 불러와서 사용합니다.

모듈 설명서를 보면 url, parms, **kwargs 세개의 아규먼트(arguments) 를 입력 받을 수 있는데 **kwargs 는 request 가 받는 애들을 받을 수 있다고 서 있습니다.

아래는 request의 설명서 입니다. parameter가 더 있는데 저 부분 까지만 잘랐습니다. 여기서 보면 headers를 입력하는 부분이 있는 걸 확인 할 수 있습니다.

위의 코드에서의 핵심은 요 respons 부분인데 url은 unsplash url 뒤에 search/photos api 사용을 위하여 붙였고 header 에 access_key를 넣어서 인증을 하고, params 의 prameter 중 query 값에 lion을 넣어서 값을 달라고 하는 요청을 만들었습니다.

respons = requests.get(url=unsplash_url+'search/photos/',params=para, headers= headers)

그리고 마지막 print 문의 결과는 아래처럼 나옵니다.

<class 'requests.models.Response'>
<Response [200]>
https://images.unsplash.com/photo-1614027164847-1b28cfe1df60?crop=entropy&cs=srgb&fm=jpg&ixid=M3w0MTgxNTZ8MHwxfHNlYXJjaHwxfHxsaW9ufGVufDB8fHx8MTY4NDkzMjc1Mnww&ixlib=rb-4.0.3&q=85

respons는 requests의 class이고 200 값을 반환했습니다. 제대로 통신했다는 의미고 JSON 형태로 반환된 값을 .json() 메소드를 이용해서 파이썬 dictionary 형태로 바꿔주면 원하는 값을 빼 낼 수 있습니다.

다른 종류의 API 들도 대부분 비슷한 형태를 띄고 있어서 한두개 정도 하다보면 쉽게 사용 가능 한 거 같습니다.

Posted in Etc, Tech

Related Posts

1 Comments

  1. 핑백:REST API 예제 두번째 – 네이버 파파고 번역 API 사용 해보기 - Lynny House

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다