[Err handling]공공데이터 API KEY 오류
어떤 에러?
Next.js를 이용해 공공데이터 포털의 API를 사용해서 웹 서비스를 만드는 중이었다.
해당 API에 요청을 보내 data를 뽑아오려고 했고,
발급받은 API KEY를 넣어 요청을 보냈지만
SERVICE_KEY_IS_NOT_REGISTERED_ERROR;
위와 같은 오류를 뱉어냈다.
어떻게 해결?
도대체 왜 그런것인가, 여러가지 시도를 해보았다.
두 가지로 문제를 예상할 수 있었는데,
- 서비스 값이 틀린 경우 → 말 그대로 서비스 값을 잘못 넣은 경우다. API KEY를 발급 받고 동기화까지 1시간까지 소요될 수도 있는데, 1시간이 지났는데도 안됐을 경우에는
- API KEY의 Encoding 문제인 경우
→ 이건 1번과도 겹칠 수 있는건데,
애초에 API KEY는 Encoding된 값을 부여받는다.
하지만 어찌된 영문인지, 해당 KEY를 넣으면 위와 같은 오류를 뱉어냈고,
encodeURI()
method를 이용해 한번 더 encoding 한 KEY를 넣어주니 정상적으로 data를 받아왔다.
const url = "API KEY";
const res = encodeURI(url);
console.log(res);
// 해당 값을 KEY값으로 서버 요청
KEY값이 올바르지 않다고 하면, 앞으로 Encoding에 문제가 없는지
확인해보도록 하자.
encodeURI()
method는 해석 불가한 (한글 등) text를 encoding 해주고,
encodeURIComponent()
method는 그 외 (= 등)의 text도 encoding 해준다.