[ 1. OPEN API 사용하기 ] 공공데이터포탈 특일 정보 OPEN API 사용법 with Postman
앞글에서 데이터포털에서 특일정보 open API 연동을 했고, Postman을 통해 데이터를 받아오는 것을 확인했다. 이때 필수파라미터들을 넘겨주었는데, ServiceKey의 값을 인코딩된 키로 넘겨주었다.
(인증키를 발급해주었을때 왜 인증키가 인코딩 키, 디코딩 키로 나누어져있는지 의심이 들었지만, 모든걸 알려고하면 피곤해져서....제껴버렸는데..)
그렇게 앞에서 포스트맨 API연동했을때 인코딩으로 된 인증키로 성공을했고,
자바에서 API를 호출했을때도 인코딩으로 넘겨주었다.
그런데 SERVICEKEY IS NOT REGISTERED 라고 오류가 떴다. (인증키의 배신)
자바에서 사용한 URL을 포스트맨에 넘기니 정상적으로 데이터를 받고 있었다
(댕~)
느낌이 싸하여 인증키가 2개였던게 생각이 나더니.....
자바에서 ServiceKey를 디코딩으로된 인증키를 넘기니 잘 넘어갔다.
{"response":{"header":{"resultCode":"00","resultMsg":"NORMAL SERVICE."},"body":{"items":{"item":{"dateKind":"01","dateName":"ê´ë³µì ","isHoliday":"Y","locdate":20230815,"seq":1}},"numOfRows":10,"pageNo":1,"totalCount":1}}}
(사진이 너무 작으니 text로 보여드림)
데이터는 잘 받아진게 확인되나 현재 내가 작업한 API연동 작업을 필요한것만 넘긴 상황이여서 한글이 깨지는 상태이다 ㅎㅎ
[add 0823] api ServiceKey 인코딩, 디코딩 발급되는 이유
실제 개발을 할 경우에는 API 환경,호출 조건이 동일하지않다. 나도 개발하면서 경험한건데, ServiceKey를 String으로 넘기는 경우에는 encoding을 자동으로 해줌으로 Decoding 일반 인증키를 value값으로 넣어야한다. Encoding 일반 인증키를 사용할 경우 Encoding 된 값을 한번더 Encoding 처리를 함으로써, 제공한 인증키값과 값이 달라지게된다.
그렇다고 모든 상황에서 Encoding 일반 인증키 값을 사용하는 것도 아니다.
포스트맨 같은 API테스트 툴에서는 Encoding값으로 넘겨줘야 테슽를 할 수 있다. 이렇게 인증키가 적용되는 방식이 다르므로 Encoding/Decoding 인증키를 제공해준거였다.