1 minute read

파이썬 API

#python #api

API

Application Programming Interface

  • 컴퓨터나 컴퓨터 프로그램 사이의 연결
  • 일종의 소프트웨어 인터페이스이며 다른 종류의 소프트웨어에 서비스를 제공
  • 사용하는 방법을 기술하는 문서나 표준은 API 사양/명세

API 활용시 확인 사항

  • 요청하는 방식에 대한 이해

    • 인증 방식
    • URL 생성
      • 기본주소
      • 원하는 기능에 대한 추가 경로
      • 요청 변수
  • 응답 결과에 대한 이해

    • 응답 결과 타입(JSON)
    • 응답 결과 구조

API 제공 사이트

TMDB

영화 및 드라마 관련 데이터베이스 제공

복권회차별 당첨번호

https://www.dhlottery.co.kr/common.do?method=getLottoNumber&drwNo={회차 숫자 입력}

API 사용시 핵심 코드

import requests

url = f'여기는 API를 가져올 수 있는 {url}을 입력' f 포맷팅으로 변수가 입력 되도록 가능
params={
    '키' : '값'    # 이곳은 필요로 하는 사이트는 추가 정보 보내주기
}
response = requests.get(url) # 불러오는 자료가 json 이면 마지막에 .JSON() 붙여주기

API 프로젝트 예시코드

TMDB에서 검색을 통해 영화 데이터를 불러오고 movie_id를 통해 추천 영화를 다시 불러와 표현하는 코드

import requests
from pprint import pprint


def recommendation(title):
    # 여기에 코드를 작성합니다.  
    base_url = 'https://api.themoviedb.org/3'      # TMDB에서 공통으로 안바뀌는 부분의 URL
    path = '/search/movie'                         # 가져오려는 데이터에 따라 변하는 부분
    params = {                                     # 데이터를 가져오기 위해 필요한 정보
        'api_key': 'e2be94a1762b4b81af8b205d5e2bcb5f', # 자격 검증을 위한 사용자 키 확인
        'language': 'ko-KR',                           # 옵션. 한글로 불러오도록
        'query': title                                 # search는 쿼리가 필수 입력 사항. 제목 입력되도록
    }
    response = requests.get(base_url+path, params=params).json()
    if len(response['results']) < 1:                
        return None
    mv_id = response['results'][0]['id']

    base_url_2 = 'https://api.themoviedb.org/3'
    path_2 = f'/movie/{mv_id}/recommendations'
    params_2 = {
        'api_key': 'e2be94a1762b4b81af8b205d5e2bcb5f',
        'language': 'ko-KR'
    }
    response_2 = requests.get(base_url_2+path_2, params=params_2).json()
    results_2 = response_2['results']
    title_lst = []
    for i in range(len(results_2)):
        title_lst.append(results_2[i]['title'])
    return title_lst


# 아래의 코드는 수정하지 않습니다.
if __name__ == '__main__':
    """
    제목에 해당하는 영화가 있으면 해당 영화의 id를 기반으로 추천 영화 목록 구성
    추천 영화가 없을 경우 []를 반환
    영화 id 검색에 실패할 경우 None을 반환
    (주의) 추천 영화의 경우 아래 예시 출력과 차이가 있을 수 있음
    """
    pprint(recommendation('기생충'))
    # ['조커', '1917', '조조 래빗', ..생략.., '살인의 추억', '펄프 픽션']
    pprint(recommendation('그래비티'))
    # []
    pprint(recommendation('검색할 수 없는 영화'))
    # None

API 프로젝트 깃허브 링크

Updated: