# API to DB

API는 날씨 정보나 상권 정보처럼 개인이 수집할 수 없는 공공의 데이터나 방대한 양의 데이터를 가져오고 싶을 때 사용해요. 그리고 네이버 검색 결과나 카카오페이처럼 그런 데이터로 만든 기능을 활용하고 싶을 때 사용해요.

### 오픈 API는 어디서 찾을 수 있을까요?

1. [공공데이터포털](https://www.data.go.kr/index.do), 국가가 공인하는 API 사례집.
2. [네이버 API](https://developers.naver.com/main/), 네이버 검색 결과 활용.
3. [카카오 API](https://developers.kakao.com/product), 카카오톡 기능 활용.

오픈 API는 문서마다 데이터를 제공하는 형식이 달라요. 그래서 여러 API를 연계해 보면서 점차 문서를 읽는 것에 익숙해지는 것을 추천해요.&#x20;

가이드에서는 **공공데이터포털**에서 제공하는 **질병관리청\_코로나19 국내발생현황 조회** 오픈 API를 연동해 볼게요.

***

### 사용 방법

1. [공공데이터포털](https://www.data.go.kr/index.do) 사이트 접속해 주세요.
2. 로그인 또는 회원가입해 주세요.
3. [질병관리청\_코로나19 국내발생현황 조회](https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15099842) 오픈 API 상세로 이동해 주세요.
4. 오픈 API 활용 신청해 주세요.

   ![image URL](https://kitschers.ohmyapp.io/assets/users/ticket/2023/08/02/9fd4b022-2a7d-445d-b4d4-72d38119b179_2023080222.30.19.png)&#x20;
5. 우측 상단 마이페이지 ➡︎ 좌측 메뉴바 ➡︎ 데이터 활용 ➡︎ Open API ➡︎ 활용신청 현황으로 이동해 주세요.

   <div align="left"><figure><img src="https://3976660509-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDgfvhQgmY9NbRK0Sln7j%2Fuploads%2FsZEevFZWHE2V5HkSxYdw%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202023-08-25%2023.37.10.png?alt=media&#x26;token=70f3defb-3a03-4319-96a1-eee7aa6db59b" alt="" width="126"><figcaption></figcaption></figure></div>
6. 활용신청 된 데이터 클릭해 주세요.

   <div align="left"><figure><img src="https://3976660509-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDgfvhQgmY9NbRK0Sln7j%2Fuploads%2FvRxIHY24cANDFJRFM1sl%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202023-08-25%2023.46.56.png?alt=media&#x26;token=8b94f662-ace3-4043-8bca-cd658b5f1c45" alt="" width="375"><figcaption></figcaption></figure></div>
7. 개발 계정 상세 보기 (참고문서 있을 시 다운로드)
8. 관리자 웹 ➡︎ 로직 설정 ➡︎ '+' 버튼을 클릭하여 새로운 로직을 생성해 주세요.
9. If When ➡︎ Data is created 를 입력, Then ➡︎ API to DB를 입력해 주세요.
10. 아래의 빈 칸 작성 시, API 별로 정보를 제공하는 형식이 다르기 때문에 사용할 API에 맞게 입력해 주세요.

<div align="left"><figure><img src="https://3976660509-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDgfvhQgmY9NbRK0Sln7j%2Fuploads%2FtPkY8YeEkQtW9fiwsM2a%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202024-01-09%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%206.31.12.png?alt=media&#x26;token=43670024-0ada-4e49-a74b-6fc57029166b" alt="" width="375"><figcaption></figcaption></figure></div>

* **Request URL**: 오픈 API를 요청하는 링크 주소로, End Point와 인증키를 참고문서에 따라 세팅해 주세요.(<http://apis.data.go.kr/1790387/covid19CurrentStatusKorea/covid19CurrentStatusKoreaJason?serviceKey=%2B6XWTxnJr3AFoI4Z59YJO92R2cYKZxUIVp7r1S7F%2BMsiEhQyERVQOAj4vT9lEBvtqtUKiMXwaDOpbsiUV1LRdw%3D%3D>)
* **Request Parameter** : API 요청 시 필요한 정보를 담아서 같이 가져와주는 역할이에요. 예를 들어, 가져오고 싶은 데이터의 시작일과 종료일 또는 페이지 수 등이 있어요. 없을 시 비워두면 돼요.
* **Request Header** : API 요청 시 필요한 숨은 정보를 담아서 같이 가져와주는 역할이에요. 예를 들어, 인증 정보(token) 등이 있어요. 없을 시 비워두면 돼요.
* **HTTP Method Type** : API를 호출하는 방법이에요. 'GET'과 'POST'가 있는데, 대부분 'GET'을 사용해요.
* **Timeout** : API 응답 대기 시간을 제한하는 역할이에요. 응답 대기 시간이 너무 길 경우, 앱 작동에 문제를 일으킬 수 있어요. 우선 비워뒀다가 문제 발생 시 설정하면 돼요. 시간은 초 단위로 설정해 주세요.
* **Collection to store data in** : API 응답 데이터를 저장할 위치예요. 컬렉션명을 입력하면 돼요.
* **Where to get data from response** : API 응답 데이터 안에서 가져올 배열 데이터의 위치예요. 저장할 데이터의 구조를 확인하고, 가져올 배열 데이터를 점 표기법으로 입력해 주세요.
* **Data Search Condition** : 기존 데이터가 있을 시 업데이트 할 데이터를 찾는 검색 조건이에요. 세부 처리 조건에서 @query의 rawFind 와 같은 역할을 해요. 데이터를 계속 추가하고 싶으면 비워두면 돼요.
* **Data Entries** : 컬렉션에 어떤 항목 ID로, 어떤 데이터 항목을 저장할 건지 설정하는 역할이에요. {"저장할 항목 ID" : "item.가져올 데이터 항목 ID"} 형식으로 입력해 주세요.

11. 'Save' 버튼을 눌러 입력한 로직을 생성해 주세요.
12. 확인
    1. 9번에서 "Where"에서 선택한 메타를 사용 중인 웹 메뉴 또는 앱 화면으로 이동해 주세요.
    2. 9번에서 "If When"에서 선택한 것에 따라, 데이터를 등록 or 수정 or 삭제를 해주세요.
    3. 'Collection to store data in'에서 선택한 컬렉션에 데이터가 잘 저장됐는지 확인해 주세요.

> \#로직, #오픈 API, # API 연계, #API to DB, #공공데이터포털

2023.08.28 Nana

\
**API to Database (DB)**

This function triggers the API and carries out the task of storing an arrangement of response values in the database.

2023.08.11 Song
