api 데이터를 데이터베이스에 저장 후 불러올 수 있나요?

api 데이터를 데이터베이스에 저장 후 불러올 수 있나요?

QA

api 데이터를 데이터베이스에 저장 후 불러올 수 있나요?

본문

api 불러와 보여줄때 속도 문제를 개선하기 위함입니다. 

 

공공apidata => mysql db 15분마다 저장(서버) => mysql 가공 데이터 만들고(서버) => 가공 데이터 프론트에 뿌려줌(프론트). 

 

아래코드는 api를 불러 그중 일부 데이터를 뿌려주는 코드입니다.

 

api 불러온 데이터를 서버에 저장후, 가공된 데이터를 뿌려 주려고 합니다. 

 

1. api 데이터를 서버에 15분 한번씩 가져오고, mysql 데이터로 저장

2. 프론트에서 보여 줄 때는 그 가공 저장된 데이터를 뿌려줌. 

 


$PublicAPI = 'https://api.';
$data = file_get_contents($PublicAPI);
$data = json_decode($data, true);
echo '<table>';
echo '<thead>';
echo '<tr>';
echo '<th>A</th>';
echo '</tr>';
echo '</thead>';
echo '<tbody>';
echo '<tr>';
echo '<td class="text-center">' . $data['A'] .'</td>';

이 질문에 댓글 쓰기 :

답변 3

db 보다는 xml 파일을 생성하고 불러오는게 훨씬 효율적일 겁니다.

저도 농사로 api 이용하는데 괜찮더라구요.

json_encode를 이용하셔서 파싱한 값을

$data의 값중 저장할 내용을 

db로 저장할 항목을 선정해서 table을 새로 만드시고

키값을 정하셔야죠

그후에 저장하시는 기능을 구현하셔서 저장하시면됩니다.

 

15분마다 작동한다고 하신것으로 보아

클론 형태로 진행하시는것 같네요

 

저장된값을 불러올때 해당 키값/조회값을 이용해서 조회하시고

하는 정책을 정하셔서 직접구현 하시거나

 

잘 안되시는건 제작의뢰 (https://sir.kr/request) 를 통해서 

제작비를 들이시더라도 제작하시는게 나을수도 있습니다.

 

 

님 말씀처럼 $data = json_decode($data, true); 여기서 가져온 후

print_r($data);

해 보시면 배열 형태로 값이 들어와 있을 겁니다.

DB에 테이블을 만드시고

해당 배열의 이름(key)을 테이블 필드로, 배열의 값(value)을 필드의 값으로 해서 insert 문을 만들어서 입력해 주시면 됩니다.

그 전에 이미 있는 값일 경우 걸러내려면

먼저 select 하셔서 있다면 continue 로 넘어가고, 없거나 값이 변경 되었을 경우에만 입력하시면 되겠네요.

답변을 작성하시기 전에 로그인 해주세요.
전체 123,663 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT