오늘은 API를 가져오다가 겪은 어이없는(?) 일에 대해서 써보려고 한다. 사실 어이가 없다기보단 나의 실력때문이겠지,,만 그래도 이렇게 기록을 해놓으면 다음부터는 실수할 일은 없을것이라고 생각한다.
노션 api를 불러와 뿌려주고 싶어서 불러오는 와중에 서버측에서 자꾸 아래와 같은 오류가 발생하였다.
{
object: 'error',
status: 401,
code: 'unauthorized',
message: 'API token is invalid.'
}
흠,, api에서 토큰값이 없어서 알려주는 오류라고 생각했다. 하지만 나는 정확히 토큰값을 입력하였었고 틀린값을 넣은적이 없었는데도 자꾸 오류가 발생하였다. 하지만 정답은 항상 가까운곳에 존재했다...
토큰값은 .env에서 가져다쓰는 방식으로 되어있었는데 .env에는
NOTION_TOKEN=secret_토큰값
NOTION_DATABASE_ID=be45c6...데이터베이스아이디값
이렇게 토큰값과 데이터베이스 아이디값을 전달해주고있었다. nextjs(이하 next)에서는 사용을 할때 앞에 NEXTPUBLIC를 꼭 붙여줘야 한다는걸 잊고있었다.. 환경변수를 next에서 설정할때는 저렇게 앞에다가 적어줘야한다는걸 잊고있었다.
적어주고나니 다른 오류가 발생하였다.
{
object: 'error',
status: 400,
code: 'validation_error',
message: 'path failed validation: path.database_id should be a valid uuid, instead was `"\\"데이터베이스 아이디값\\""`.'
}
이런 오류가 발생했는데 처음에는 무슨 오류일까 엄청 생각을 하다가 가만히 보니까 공백이 들어갔다는거 같아서 .env파일을 다시보게되었다.

위에 스크롤한것을보면 공백이 있다. 바로 저 공백때문에 데이터 아이디값이 존재하지않는 값으로 되어버린것이다.
그래서 공백을 없애주고 다시 실행하니까 잘 돌아갔다.
하루종일 삽질을 하고 결국 지인에게 헬프를 외쳐 수정하긴했지만 다음부터는 절대 이런실수는 없을것같다.. 좋은 삽질이였다..