일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 코딩테스트
- 디자인 패턴
- pandas
- API
- 의료 ai 대학원 월급
- 자바 프로젝트
- 파이썬
- 활성화 함수
- 인공지능
- 대학원 급여
- 대학원 월급
- C# 프로젝트
- 인공지능 깃 버전관리
- 머신러닝
- 자바
- 자바 영화 api
- 파이썬 경사하강법
- 디자인패턴
- 딥러닝 실험 깃 버전관리
- MLP
- 딥러닝
- 로스트아크
- 통계학
- 정규화
- python
- 경사하강법
- Dehaze
- 영화 api
- 백준
- DCP
Archives
- Today
- Total
대학원 일기
java로 만드는 BoxOffice 영화 예매 프로그램: API 구현 본문
이전글
2021.12.19 - [개발 공부/java] - java로 만드는 BoxOffice 영화 예매 프로그램: OPEN API
서론
이전에 조사한 영화진흥위원회에서 제공하는 OPEN API를 통해 일별 박스오피스 정보를 구현해보겠다.
개발환경
- 운영체제: 윈도우10
- 개발도구: intellij
- 자바버전: java17
- 빌드 시스템: gradle
소스코드
public class MovieAPI {
// 일자 포맷
private final SimpleDateFormat DATE_FMT = new SimpleDateFormat("yyyyMMdd");
// Map -> QueryString
public String makeQueryString(Map<String, String> paramMap) {
final StringBuilder sb = new StringBuilder();
paramMap.forEach((key, value) -> {
if (sb.length() > 0) {
sb.append('&');
}
sb.append(key).append('=').append(value);
});
return sb.toString();
}
public void requestAPI() {
// 변수설정
// 하루전 날짜
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.add(Calendar.DATE, -1); // 당일은 안됨
// 변수 설정
// 요청(Request) 인터페이스 Map
Map<String, String> paramMap = new HashMap<>();
String AUTH_KEY = "인증키 입력";
paramMap.put("key" , AUTH_KEY); // 발급받은 인증키
paramMap.put("targetDt" , DATE_FMT.format(cal.getTime())); // 조회하고자 하는 날짜
paramMap.put("itemPerPage" , "5"); // 결과 ROW 의 개수( 최대 10개 )
paramMap.put("multiMovieYn" , ""); // Y:다양성 영화, N:상업영화, Default:전체
paramMap.put("repNationCd" , ""); // K:한국영화, F:외국영화, Default:전체
try {
// Request URL 연결 객체 생성
// 상수 설정
// 요청(Request) 요청 변수
String REQUEST_URL = "http://www.kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.json";
URL requestURL = new URL(REQUEST_URL +"?"+makeQueryString(paramMap));
HttpURLConnection conn = (HttpURLConnection) requestURL.openConnection();
// GET 방식으로 요청
conn.setRequestMethod("GET");
conn.setDoInput(true);
// 응답(Response) 구조 작성
// Stream -> JSONObject
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
String readline;
StringBuilder response = new StringBuilder();
while ((readline = br.readLine()) != null) {
response.append(readline);
}
JSONParser parser = new JSONParser();
JSONObject responseBody = (JSONObject) parser.parse(response.toString());
// 데이터 추출
JSONObject boxOfficeResult = (JSONObject) responseBody.get("boxOfficeResult");
// 박스오피스 주제 출력
String boxOfficeType = boxOfficeResult.get("boxofficeType").toString();
System.out.print(boxOfficeType);
System.out.println(" 순위");
// 박스오피스 목록 출력
JSONArray dailyBoxOfficeList = (JSONArray) boxOfficeResult.get("dailyBoxOfficeList");
for (Object o : dailyBoxOfficeList) {
JSONObject boxOffice = (JSONObject) o;
System.out.printf(" %s - %s \n", boxOffice.get("rnum"), boxOffice.get("movieNm"));
}
System.out.println("종료: exit\n");
} catch (IOException | ParseException e) {
e.printStackTrace();
}
Scanner scanner = new Scanner(System.in);
while (true){
System.out.print("명령어) ");
String command = scanner.nextLine();
if (Objects.equals(command, "exit")) {
break;
}
else{
System.out.println("잘못 입력하셨습니다. 다시 입력해주세요.");
}
}
}
}
결과화면
마치며
영화진흥위원회에서 제공되는 OPEN API를 통해 일별 박스오피스 순위를 알아볼 수 있었다. 이제 API를 통해 얻어온 정보로 영화를 예매할 수 있는 좌석과 티켓을 구현하겠다.
java로 만드는 BoxOffice 영화 예매 프로그램: 예매 좌석 구현
java로 만드는 BoxOffice 영화 예매 프로그램: 예매 좌석 구현
이전글 2021.12.19 - [개발 공부/java] - java로 만드는 BoxOffice 영화 예매 프로그램: API 구현 2021.12.19 - [개발 공부/java] - java로 만드는 BoxOffice 영화 예매 프로그램: OPEN API 2021.12.17 - [개발 공..
kys0411.tistory.com
'Computer programming > java' 카테고리의 다른 글
자바(Java)의 특성 (0) | 2021.12.22 |
---|---|
java로 만드는 BoxOffice 영화 예매 프로그램: 예매 좌석 구현 (0) | 2021.12.22 |
java로 만드는 BoxOffice 영화 예매 프로그램: OPEN API (0) | 2021.12.19 |
java로 만드는 BoxOffice 영화 예매 프로그램: 회원관리 구현 (0) | 2021.12.17 |
java로 만드는 BoxOffice 영화 예매 프로그램: 준비 단계 (0) | 2021.12.17 |
Comments