이번 미니프로젝트는 옥정호의 공공수질데이터를 API로 불러와서 PostgreSQL(DataBase)에 저장하는 과정을 수행한다.
[ 목표 및 개발순서 ]
주 목표 )
공공사이트에서 API로 옥정호의 수질데이터를 실시간으로 계속 받아와 다른pc(회사서버pc)의 PSQL(DB)에 쌓는다.
이유 )
회사에서 운용하는 옥정호 수질로봇과 실제 공공기관에서 측정하는 수질데이터를 그라파나 대쉬보드에 띄워 실시간으로 비교해보려고한다.
그라파나(Grafana)사이트는 psql과 연동되어 데이터를 편하게 대시보드상에 시각화해주는 툴이다.
개발순서)
1. 로봇이 수집중인 data종류를 확인 후, 그에 맞는 공공수질데이터를 제공하는 사이트를 찾는다.
2. 스크립트를 작성하여 해당 사이트에서 API 공공수질데이터를 지속적으로 호출하여 받아온다.
3. 받아온 데이터를 서버pc의 psql(DB)과 연결하여 전처리 및 에러처리 후, 실시간으로 저장될 수 있게 한다.
< 총 3단계로 나누어 포스팅 >
1. 프로젝트 및 라이브러리 소개, http개념 (현재 포스트)
2. API, 서버컴퓨터의 PSQL연결
3. 전처리 및 에러처리, 지속적으로 호출하여 PSQL에 실시간 데이터 저장
[ 라이브러리 ]
공공 수질데이터 k-water사이트에서 오픈API를 들어가면 다양한 수질데이터들을 API로 제공해준다.
로그인하여 사이트 내에 제공되는 간단한 가이드를 따르면 간단한 절차를 통해 API사용허가를 받을 수 있다.
그렇게 나만의 URL과 고유한 serviceKey를 받는다.
이제 이 API를 사용하여 원하는 지역의 원하는 수질데이터를 가져와보자!
* psycopg2: PostgreSQL 데이터베이스와 연동하기 위한 파이썬 라이브러리이다.
* requests: HTTP 요청을 보내기 위한 라이브러리입니다. 이 코드에서는 공공데이터 포털의 API에 요청을 보내기 위해 사용된다.
* xml.etree.ElementTree: XML 데이터를 파싱하고 처리하기 위한 라이브러리이다. API 응답을 파싱하기 위해 사용된다.
[ 여기서 HTTP란? ]
HTTP 요청은 웹 브라우저와 같은 인터넷 통신 플랫폼에서 웹 사이트를 로드하는 데 필요한 정보를 요청하는 방법이다.
인터넷을 통해 이루어진 각 HTTP 요청은 서로 다른 유형의 정보를 전달하는 일련의 인코딩된 데이터를 전달한다.
HTTP를 통한 일반적인 흐름에는 클라이언트 시스템에서 서버에 요청한 다음 서버에서 응답 메시지를 보내는 과정이다.
HTTP는 크게 두 가지 메서드가 있다.
'GET' 요청은 응답으로 정보를 받는 것을 기대하는 반면,
'POST' 요청은 일반적으로 클라이언트가 웹 서버에 정보를 제출하고 있음을 나타낸다.
( 양식정보 등등.. 예시로는 제출된 사용자 이름 및 비밀번호)
HTTP URL을 사용하여 API에 접근하면, 사용자가 원하는 형식에 따라 데이터를 응답으로 받을 수 있다.
이와 관련하여 다음포스팅에서 자세하게 다루겠다.
'프로젝트 > [백엔드] API_to_PSQL' 카테고리의 다른 글
#3 [PSQL,쿼리문] API데이터 다른pc의 PSQL에 저장하기(+전처리) (0) | 2023.11.05 |
---|---|
#2 [API,PSQL] API데이터받기, 서버pc와의 PSQL연결 (0) | 2023.11.03 |