영화 정보 검색 및 추천 API.

Movie Information Retrieval and Recommendation API

Introduce

API 설명

영화진흥위원회 API

영화진흥위원회 API 서비스들 중 영화목록 API, 일별 박스오피스 API를 사용합니다. REST 방식으로 호출했으며, 응답형식은 XML, JSON 둘 다 지원하지만 JSON 형식을 사용합니다.

  • 영화목록 API

영화목록 조회 API 서비스는 통합 전산망에서 사용되는 영화목록을 영화명, 감독명 등의 조건을 통해 조회할 수 있습니다. 이 중 영화명으로 요청하여 조회할 수 있게 하였으며, 결과 ROW개수는 사용자가 원하는 만큼을 필수가 아닌 요청변수로 주어 응답하도록 하였습니다.

  • 일별 박스오피스 API

일별 박스오피스 API 서비스는 특정 일자 상영작들의 박스오피스 정보를 사용자가 원하는 조건을 통해 조회합니다. 상영지역별로 조회하기 위해 지도 API를 통해 받아온 사용자의 위치를 통해 지역별 박스오피스 정보를 응답하도록 하였습니다.

Geolocation API

REST 방식으로 호출했으며, JSON 객체 또는 JSONP callback 함수가 반환될 수 있지만 JSON 형식을 사용합니다.

  • 사용자의 현재 위치 파악
  • 사용자 IP를 기반으로 현재 위치를 위도, 경도를 매개변수로 지도 API에 전달

KakaoMap API

지도 SDK는 카카오맵의 기능을 웹과 앱 플랫폼에 구현할 수 있도록 다양한 메서드와 라이브러리를 통해 제공합니다.
로컬 API는 REST API 방식으로 카카오맵의 콘텐츠 및 데이터를 제공합니다.

  • 키워드로 장소 검색 기능을 활용
  • 현재 위치를 기준으로 반경 20km 내 영화관 위치 정보 반환
  • 사용자 위치 반경 20km내 영화관을 가까운 순서로 출력

결과 ROW개수는 사용자가 원하는 만큼을 필수가 아닌 요청변수로 주어 응답하도록 하였습니다.

Introduce

기대효과

기대효과1

주기적으로 업데이트되는 최신정보를 기반으로 찾고자 하는 키워드를 통해 관련 영화들의 정보와 목록을 한 눈에 확인할 수 있다.

기대효과2

사용자의 현재 위치를 통해 주변 영화관의 위치를 쉽게 알 수 있으며, 이에 더불어 해당 지역의 영화 순위도 한 번에 알 수 있다.

Introduce

개발환경

REST API

REST API는 HTTP 요청을 보낼 수 있는 환경이라면 어디서든 이용 가능합니다. 클라이언트에서 서버로, 또는 서버에서 서버로 요청을 보낼 수 있습니다. 예를 들면 다음과 같은 환경에서 REST API를 사용할 수 있습니다.

모바일/PC 웹 환경

IOS, Android등 모바일 환경

Java, Ruby, Python
다양한 환경의 웹 서버

Functions

기능

영화 정보 검색 및 추천

REST API 방식으로 영화에 관련된 여러 정보뿐만아니라 위치에 따른 영화관, 박스오피스 데이터를 제공

영화 검색

영화 제목을 통해 찾고자 하는 영화 목록 정보를 제공

현재 위치 주변 영화관 및
박스오피스 검색

사용자 IP주소 기반의 현재위치를 기준으로 반경 20km 내 영화관 위치를 출력하며,
해당 지역의 박스 오피스 정보 출력

How To Use

샘플 코드

요청 URL

요청 방식

API 메서드 요청 URL 출력 포맷
영화 검색 GET http://15.165.160.58:5000/moviesearch/movieinfo JSON
현재 위치 주변 영화관 및 박스오피스 검색 GET http://15.165.160.58:5000/moviesearch/cineinfo JSON

API 호출 예제

영화 검색

import os
import sys
import urllib.request

encText = urllib.parse.quote("검색할 영화제목")

url = "http://15.165.160.58:5000/moviesearch/movieinfo?key=[발급받은 키]&listNum=2&movieNm=" + encText

request = urllib.request.Request(url)

response = urllib.request.urlopen(request)
rescode = response.getcode()

if(rescode==200):
response_body = response.read()
print(response_body.decode('utf-8'))
else:
print("Error Code:" + rescode)

현재 위치 주변 영화관 및 박스오피스 검색

import os
import sys
import urllib.request

encText = urllib.parse.quote("사용자 ip")

url = "http://15.165.160.58:5000/moviesearch/cineinfo?key=[발급받은 키]&listNum=2&ip=" + encText

request = urllib.request.Request(url)

response = urllib.request.urlopen(request)
rescode = response.getcode()

if(rescode==200):
response_body = response.read()
print(response_body.decode('utf-8'))
else:
print("Error Code:" + rescode)

응답 예

영화 검색


현재 위치 주변 영화관 및 박스오피스 검색


오류코드

영화 검색 / 현재 위치 주변 영화관 및 박스오피스 검색

상태 코드 상태 설명
200
OK
성공 서버가 클라이언트의 요청을 성공적으로 수행
응답 바디의 경우 각 API별로 응답 바디의 형식이 다를 수 있으므로, 자세한 내용은 각 API별 상세 설명을 참고하기 바랍니다.
400
Bad Request
실패 일반적인 오류
주로 API에 필요한 필수 파라미터와 관련하여 서버가 클라이언트 오류를 감지해 요청을 처리하지 못한 상태입니다.
401
Unauthorized
실패 인증 오류 (주로 토큰 관련)
해당 리소스에 유효한 인증 자격 증명이 없어 요청에 실패한 상태입니다.
429
Too Many Request
실패 쿼터 초과
정해진 사용량이나 초당 요청 한도를 초과한 경우입니다.
500
Internal Server Error
실패 시스템 오류
서버 에러를 총칭하는 에러 코드로, 요청을 처리하는 과정에서 서버가 예상하지 못한 상황에 놓인 상태입니다.
502
Bad Gateway
실패 시스템 오류
서로 다른 프로토콜을 연결해주는 게이트웨이가 잘못된 프로토콜을 연결하거나 연결된 프로토콜에 문제가 있어 통신이 제대로 되지 않은 상태입니다.
503
Service Unavailable
실패 서비스 점검 중
서버가 요청을 처리할 준비가 되지 않은 상태입니다.

How To Use

요청 및 응답 방식

영화 검색

요청 방식

Name Required Type Description
key Y str 발급받은 인증 키 값을 입력합니다.
movieNm Y str 조회하고자 하는 영화 제목을 입력합니다.
listNum N str 출력되는 영화제목 row 개수를 지정합니다.
영화 검색 결과가 10개 이하일 때는 결과 개수만큼 출력됩니다. (default : "10", 최대 : "10")

응답 방식

Name Type Description
companyCd str 제작사 코드를 출력합니다.
companyNm str 제작사명을 출력합니다.
peopleNm str 영화감독명을 출력합니다.
genreAlt str 영화장르를 출력합니다.
movieNm str 영화명을 출력합니다.
nationAlt str 제작국가를 출력합니다.
openDt str 개봉년도를 출력합니다.

현재 위치 주변 영화관 및 박스오피스 검색

요청 방식

Name Required Type Description
key Y str 발급받은 인증 키 값을 입력합니다.
ip Y str 위치정보를 위한 사용자 ip를 입력합니다.
listNum N int 출력되는 영화제목 row 개수를 지정합니다.(default : 15, 최대 : 15)

응답 방식

Name Type Description
audiAcc str 누적관객수를 출력합니다.
movieNm str 영화명을 출력합니다.
openDt str 영화 개봉일을 출력합니다.
rank str 전날의 박스오피스 순위를 출력합니다.
adress_name str 전체 지번 주소를 출력합니다.
distsance str 중심 좌표까지의 거리를 출력합니다. 단, x, y 파라미터를 준 경우에만 존재합니다. (단위 : meter)
phone str 영화관 전화번호를 출력합니다.
place_name str 영화관명을 출력합니다.
place_url str 영화관 상세페이지 url을 출력합니다.
road_address_name str 전체 도로명 주소를 출력합니다.

How To Use

키 발급

{% block content %} {% if session ['logged_in'] %} {% if data %}

{{ data }}

{% else %}
{{ session['username'] }} 님 반갑습니다.

key : {{ session['apiKey']}}

Logout
{% endif %} {% else %}

로그인하지 않은 상태입니다.

서비스를 이용하려면 로그인해주세요.

Login Register
{% endif %} {% endblock %}

About Us

팀원 소개

우소연

2016136081 wsy4533@naver.com

민초현

2017136041 angly97@naver.com

정소진

2017136111 sojinj1@koreatech.ac.kr