5. 오픈 API를 연계하고 싶어요.
Last updated
Last updated
API는 날씨 정보나 상권 정보처럼 개인이 수집할 수 없는 공공의 데이터나 방대한 양의 데이터를 가져오고 싶을 때 사용해요. 또한 네이버 검색 결과나 카카오페이처럼 그런 데이터로 만든 기능을 활용하고 싶을 때 사용해요.
오픈 API는 문서마다 데이터를 제공하는 형식이 달라요. 그래서 여러 API를 연계해 보면서 점차 문서를 읽는 것에 익숙해지는 것을 추천해요.
이 문서에서는 공공데이터포털에서 제공하는 질병관리청_코로나19 국내발생현황 조회 오픈 API를 연동해 볼게요.
공공데이터포털 사이트 접속
로그인 또는 회원가입
질병관리청_코로나19 국내발생현황 조회 오픈 API 상세로 이동
오픈 API 활용 신청
우측 상단 마이페이지 > 좌측 메뉴바 > 데이터 활용 > Open API > 활용신청 현황으로 이동
활용신청 된 데이터 클릭
개발 계정 상세 보기 (참고문서 있을 시 다운로드)
관리자 웹 > 로직 설정 > '+'버튼을 클릭하여 새로운 로직을 생성해 주세요.
아래와 같이 입력해 주세요.
If When : Data is created
Where : autoSampleTest
Then : API to DB를 입력해 주세요.
아래의 빈 칸 작성 시, API 별로 정보를 제공하는 형식이 다르기 때문에 사용할 API에 맞게 입력해 주세요.
Request URL : 오픈 API를 요청하는 링크 주소로, End Point와 인증키를 참고문서에 따라 세팅하면 돼요.
http://apis.data.go.kr/1790387/covid19CurrentStatusKorea/covid19CurrentStatusKoreaJason?serviceKey=
#{일반 인증 키}(일반 인증키를 넣어야 정상적으로 동작합니다.)
Request Parameter : API 요청 시 필요한 정보를 담아서 같이 가져와주는 역할이에요. 예를 들어, 가져오고 싶은 데이터의 시작일과 종료일 또는 페이지 수 등이 있어요. 없을 시 비워둬도 돼요.
{}
Request Header : API 요청 시 필요한 숨은 정보를 담아서 같이 가져와주는 역할이에요. 예를 들어, 인증 정보(token) 등이 있어요. 없을 시 비워둬도 돼요.
{}
HTTP Method Type : API를 호출하는 방법이에요. 'GET'과 'POST'가 있는데, 대부분 'GET'을 사용해요.
Timeout : API 응답 대기 시간을 제한하는 역할이에요. 응답 대기 시간이 너무 길 경우, 앱 작동에 문제를 일으킬 수 있어요. 우선 비워뒀다가 문제 발생 시 설정해도 돼요. 시간은 초 단위로 설정해 주세요.
Collection to store data in : API 응답 데이터를 저장할 위치예요. 컬렉션명을 입력해 주세요.
coronaPublicData
Where to get data from response : API 응답 데이터 안에서 가져올 배열 데이터의 위치예요. 저장할 데이터의 구조를 확인하고, 가져올 배열 데이터를 점 표기법으로 입력해 주세요.
response.result
Data Search Condition : 기존 데이터가 있을 시 업데이트 할 데이터를 찾는 검색 조건이에요. 세부 처리 조건에서 @query의 rawFind 와 같은 역할을 해요. 데이터를 계속 추가하고 싶으면 비워두면 돼요.
Data Entries : 컬렉션에 어떤 항목 ID로, 어떤 데이터 항목을 저장할 건지 설정하는 역할이에요. {"저장할 항목 ID" : "item.가져올 데이터 항목 ID"} 형식으로 입력하면 돼요.
{ "mmddhh": "item.mmddhh" }
'Save' 버튼을 클릭해 입력한 로직을 생성해 주세요.
확인
9번에서 "Where"에서 선택한 메타를 사용중인 웹 메뉴 또는 앱 화면으로 이동해 주세요.
9번에서 "If When"에서 선택한 것에 따라, 데이터를 등록 or 수정 or 삭제를 해주세요.
'Collection to store data in'에서 선택한 컬렉션에 데이터가 잘 저장됐는지 확인해 주세요.
#로직, #오픈 API, # API 연계, #API to DB, #공공데이터포털
2024.01.11 Jinny