HTTP POST(RestAPI)명령을 사용한 영화 정보 조회
페이지 정보
작성자 GCK낸시
본문
첨부파일
관련링크
포건시에서는 HTTP 매소드를 통해 다양한 Restful API와 직관적으로 연결하고 쉽게 데이터를 주고 받을 수 있는 UI를 플러그인을 통해서 제공하고 있습니다.
그렇기 때문에 Fetch, Ajax 또는 Axios를 이용한 HTTP 통신을 위한 별도의 전문적인 코딩이 필요하지 않으며,
Rest API와 통신을 위한 로직을 포건시 명령을 통해 클릭 만으로 쉽게 구현할 수 있습니다.
포건시의 HTTP 통신 그리고 JSON 파싱을 지원하는 플러그인을 통해, Rest API 서비스를 제공하는 다양한 ERP, 그룹웨어, CRM, 공공 오픈API 등의 데이터를 포건시에서 다양한 방법으로 시각화하고 이를 활용할 수 있습니다.
이번 포스팅에서는 포건시(Forguncy)에서 HTTP Request 보내기 플러그인을 이용하여, "영화진흥위원회 일별 박스오피스 API"와 "한국영화데이터베이스 API"를 활용하여 영화 정보를 조회하는 방법을 설명합니다.
해당 포스팅의 샘플 프로젝트를 다운로드하려면, 첨부된 파일을 다운로드 하거나, 여기를 클릭하세요.
플러그인 설치
포건시에서 RestAPI를 사용하고, 해당 데이터를 사용하려면 아래 두개의 플러그인을 설치해야 합니다. 아래 링크를 클릭하면 다운로드 파일과 사용방법을 확인할 수 있습니다.
플러그인 설치하기를 클릭하면 플러그인 설치방법을 확인할 수 있습니다.
일별박스오피스 JSON 데이터 가져오기
일별박스오피스와 영화상세정보 RestAPI를 사용하기 위해는 서버단 명령을 만들어야합니다.
서버단 명령어는 말 그데로 포건시 서버에서 작동하는 명령어로 웹 브라우저에서 동작하지 않고, 강력한 서버의 성능을 활용하기 때문에, 동적 데이터 수집 및 계산의 논리를 더 빠르고 잘 수행할 수 있습니다.
먼저, 일별박스오피스의 순위, 관객수, 수익 등을 정보를 받아 올 수 있도록, 서버단 명령어를 작성해보도록 하겠습니다.
1. 프로젝트 탐색기에서 서버단 명령에 오른쪽 마우스 버튼을 클릭 한 후, 오른쪽 마우스 메뉴에서 "서버단 명령 생성하기"를 선택합니다.
2. 서버단 명령 실행창에서 이름을 "일별박스오피스"로 설정합니다.
3. RestAPI 호출 시 사용할 파라미터를 만들어주기 위해 [파라미터]탭에서 "파라미터 추가"버튼을 클릭하여 "Date"파라미터를 추가합니다.
4. [명령]탭에서 "명령 편집"을 클릭합니다.
5. "새 명령"을 클릭한 후, 명령을 아래와 같이 설정합니다.
5-1. POST 데이터 명령
일별 박스오피스 RestAPI를 호출할 수 있도록 아래와 같이 명령을 생성합니다.
해당 포스팅에서는 영화진흥위원회에서 제공하는 API를 사용하고 있습니다.
영화진흥위원회 일별 박스오피스 API문서는 아래 사이트틀 참고하세요.
- 명령 선택: POST 데이터 명령
- URL: https://kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.json
- API 방식: GET
데이터 유형: 복합구조
- 이름: key 값: 영화진흥위원회에서 발급받은 키
- 이름: targetDt 값: =Date ("3번"에서 설정한 파라미터)
- 파라미터의 결과 요청: boxoffice (Rest API로 부터 받은 JSON 결과 값을 저장하는 사용자 임의 변수명)

* POST 데이터 명령에 대한 설명은, 아래의 도움말을 참고해주세요.
- 도움말 바로가기
5-2. 반환 명령 생성하기
5-1번에서 설정한 파라미터의 결과 값인 "boxoffice" 변수(JSON 문자열 결과값)를 반환할 수 있도록 명령을 설정합니다.
- 명령 선택: 반환 명령 생성하기
- 반환 메시지: =boxoffice (5-1번에서 설정한 파라미터의 결과 값)
일별박스오피스 조회 웹 페이지 만들기
다음으로 일별박스오피스 명령을 통해 JSON으로 받은 결과를 리스트뷰 형식으로 가져와 사용자들이 데이터를 쉽게 볼 수 있도록 아래와 같이 설정합니다.
1.셀 영역을 선택하고, [홈]>[리스트뷰설정]을 클릭 한 후, 테이블 선책 창에서 [없음]을 클릭하여 리스트뷰를 생성합니다. 리스트뷰의 열 (순위, 영화명, 개봉일, 매출액, 관객수, 스크린수)을 열 헤더에 기입해줍니다.
2. 페이지 로딩 시 명령이 바로 실행될 수 있도록 페이지 설정에서 "페이지 로딩 시 처리 명령 편집"을 클릭합니다.
3. 명령 창에서 아래와 같이 명령을 설정합니다.
1) 명령1
이전에 생성한 "일별박스오피스" 서버단 명령을 호출해줍니다.
- 명령 선택: 서버단 명령 호출
- 서버단 명령: 일별박스오피스
- 파라미터이름: Date 값: =BE9 셀 (H7셀에 있는 TODAY()-1의 변환된 값)
- 반환 메시지 셀: =BA19
2) 명령 2
JSON으로 받은 결과값을 리스트뷰 형식으로 가져오기 위해 아래와 같이 명령을 설정합니다.
- 명령 선택: JSON 데이터를 리스트뷰로 가져오기
JSON 데이터 소스: =BA19
- JSON 설정 예제: RestAPI 반환값 입력
- JSON 경로: boxOfficeResult.dailyBoxOfficeList
- 리스트뷰: 리스트뷰1
리스트뷰 열
속성이름
열
rank (순위)
=D17
movieNm (영화이름)
=G17
openDt (개봉일)
=Z17
salesAmt (수익)
=AF17
audiCnt (관객수)
=AM17
scrnCnt (스크린수)
=AS17
4. 리스트뷰의 "영화명"을 클릭하면 "영화상세정보"페이지로 이동할 수 있도록, 리스트뷰의 "영화명"셀을 하이퍼링크로 설정한 후, 명령편집을 아래와 같이 설정해줍니다.
- 명령 설정: 팝업 보여주기
- 페이지 선택: 영화상세정보
값을 대상 페이지에 전달
- 전달 셀: =G17(영화명) 대상 셀: =H21
- 전달 셀: =Z17(개봉일) 대상 셀: =H23
영화상세정보 JSON 데이터 가져오기
다음으로 최종 사용자가 일별박스오피스 각각의 영화에 대한 상세정보를 확인하고자 할 경우, 영화에 대한 상세 정보를 Rest API를 통해서 가져올 수 있도록 서버단 명령어를 작성해 보겠습니다.
1. 프로젝트 탐색기에서 서버단 명령에 오른쪽 마우스 버튼을 클릭한 후, 오른쪽 마우스 메뉴에서 "서버단 명령 생성하기"를 선택합니다.
2. 서버단 명령 실행창에서 이름을 "영화상세정보"로 설정합니다.
3. RestAPI 호출 시 사용할 파라미터를 만들어주기 위해[파라미터]탭에서 "파라미터 추가"버튼을 클릭하여 아래 파라미터를 추가합니다.
- Movienm - 영화제목
- releaseDts - 개봉일
4. [명령]탭에서 "명령 편집"을 선택합니다.
5. "새 명령"을 클릭한 후, 명령을 아래와 같이 설정합니다.
5-1. POST 데이터 명령
영화명, 개봉일을 통해서, 영화상세정보 RestAPI를 호출할 수 있도록 아래와 같이 명령을 생성합니다.
한국영화데이터베이스에서 제공하는 API를 사용하고 있습니다.
한국영화데이터베이스 API문서는 아래 사이트틀 참고하세요.
- 한국영화데이터베이스 API 문서
- 명령 선택: POST 데이터 명령
- URL: https://api.koreafilm.or.kr/openapi-data2/wisenut/search_api/search_json2.jsp?
- API 방식: GET
데이터 유형: 복합구조
이름
값
detail
Y
releaseDts
releaseDts ("3번"에서 설정한 파라미터)
listCount
3
collection
kmdb_new2
title
=Mivenme ("3번"에서 설정한 파라미터)
ServiceKey
한국영화데이터베이스에서 발급받은 키
- 파라미터의 결과 값 변수: SearchMovie (영화상세정보 결과에 대한 결과 JSON을 담을 변수명)
5-2. 반환 명령 생성하기
5-1번에서 설정한 파라미터의 결과 값인 "SearchMovie(영화상세정 JSON 결과)"를 반환할 수 있도록 명령을 설정합니다.
- 명령 선택: 반환 명령 생성하기
- 반환 메시지: =SearchMovie (5-1번에서 설정한 파라미터의 결과 값)
영화상세정보 페이지 만들기
박스오피스페이지에서 선택한 영화의 상세정보를 보여줄 수 있도록 아래와 같이 설정합니다.
영화 상세정보는 영화상세정보 명령을 통해 JSON으로 받은 결과를 아래와 같이 셀, 리스트뷰 형식으로 가져옵니다.
1. 페이지에서 RestAPI 결과값을 입력받을 셀을 아래 셀유형에 맞춰 만들어줍니다,
화면 구성에 대한 자세한 정보는 첨부된 포건시 프로젝트을 참고해주세요.
셀 유형 |
결과값 | 셀 |
없음 |
영화명 제작연도 상영시간 개봉일 제작국가 장르 감독 | H21 H23 H25 H27 H29 H31 H33 |
여러 줄 텍스트 |
포스터 이미지 묶음 - 여러 문자열 링크 | AC7 (AC열 숨김처리) |
이미지 | 포스터 이미지 | C4 |
리스트뷰 |
출연진 | H36 |
2. 포스터 이미지 문자열을 정제합니다.
RestAPI에서 가져온 포스터 결과 값은 아래 이미지 문자열과 같이 "|" 구분자로 여러 개의 이미지 값을 가지고 있는 문자열입니다. 이미지 문자열에서 첫번째 값만 가져와서 이미지 셀에 해당 값을 설정해주어야 합니다.
이미지 문자열에서 첫번째 이미지 값만 가져오기 위해서는 아래와 같이 함수를 이용하여 "Poster" 셀에서 "|" 구분자를 찾고, 첫번째 값만 가져오도록 설정합니다.
- 이미지 문자열
http://file.koreafilm.or.kr/thm/02/99/17/86/tn_DPK019772.jpg|http://file.koreafilm.or.kr/thm/02/99/17/88/tn_DPK019872.jpg
- 이미지 문자열에서 첫번째 이미지 가져오게 설정 (엑셀 함수 사용)
=LEFT(Poster,FIND("|",Poster,1)-1)
3. 페이지 로딩 시 명령이 바로 실행될 수 있도록 페이지 설정에서 "페이지 로딩 시 처리 명령 편집"을 클릭합니다.
4. 명령창에서 아래와 같이 명령을 설정합니다.
1) 명령1
이전에 생성한 "영화상세정보" 서버단 명령을 호출해줍니다.
- 명령 선택: 서버단 명령 호출
- 서버단 명령: 영화상세정보
- 파라미터 이름: Movienm 값:=H21 (박스오피스페이지의 전달 값)
- 파라미터 이름: releaseDts 값:=H23 (박스오피스페이지의 전달 값)
- 반환 메시지 셀: =X12
JSON으로 받은 결과값을 셀에 가져오기 위해 아래와 같이 명령을 설정합니다.
- 명령 선택: JSON 데이터를 셀로 가져오기
- JSON 데이터 소스: =X12
- JSON 설정 예제: RestAPI 반환값 입력
- JSON 경로: Data.Result
- 목표 셀
속성이름 | 셀 |
directors.director.directorNM | =H33 |
posters | =AV7 (숨김 셀 - 이미지 문자열) |
runtime | =H25 |
genre | =H31 |
nation | =H29 |
ratings.rating.releaseDate | =H27 |
3) 명령3
JSON으로 받은 결과값을 리스트뷰 형식으로 가져오기 위해 아래와 같이 명령을 설정합니다.
"JSON 데이터를 리스트뷰로 가져오기" 명령을 이용하여 출연진 정보를 리스트뷰에 가져옵니다.
4) 명령4
포스터가 Img 셀에 나오도록 Img 셀 값을 2번에서 설정한 이미지 경로로 설정합니다.
- 명령 선택: 셀 속성과 내용 변경하기
- 대상셀: =Img
- 속성 유형: 대상 셀에 설정 값을 입력
- 설정값: =AV14
이제 모든 설정이 끝났습니다!
실행화면
일일 박스오피스에서 영화명을 클릭하면 해당 영화에 대한 상세정보를 확인할 수 있습니다.
해당 포스팅의 샘플 프로젝트를 다운로드하려면, 첨부된 파일을 다운로드 하거나, 여기를 클릭하세요.
지금 바로 Forguncy를 다운로드하여 직접 테스트해보세요!
댓글목록
등록된 댓글이 없습니다.