NotionAPI (1)

Tadap·2023년 7월 14일

노션API

목록 보기
1/4
post-thumbnail

노션 API를 이용해서 캡스톤을 진행중에 있다.
사용하면서 NotionAPI를 정리하려고 한다
노션 icon

노션의 MyIntegration에 가면 API요청용 임시 코드를 만들 수 있다.
My-Integration
OAuth2.0을 사용하는 것은 Distribution탭에 가서 배포 이후에 가능한듯 보인다.

노션 API는 친절하게 Postman도 지원해 준다PostMan 주소
API는 여기서 확인 가능하다.
또한 npm에 노션 공식으로 JavaScript를 위한 SDK가 준비되어있다. @notionhq/client

그리고 찾다보니 다행이도 JVM을 위한 SDK도 있었다 notion-sdk-jvm
Kotilin 으로 작성되어있고 JVM에서는 돌아간다.(JDK 버전을 좀 타는듯 하다)
아쉬운건 doc이 없다...

NotionAPI는

크게 PageProperties와 PageContent로 나뉜다.
PagePropeties는 Notion의 제목부터 내용 전까지, PageContent는 내용이다

현재 내가 필요한 부분은 PageProperties의 제목, 그리고 PageContent의 내용이다.

위 사진이 직접 요청을 날려 받은 정보이다.

RetrieveBlockChildren

특정 id에 해당하는 내용을 불러주는 API이다.
results 에 여러 블록들이 담겨서 내려온다 주요한것들만 살펴보자면

  1. type: 블록의 타입 아래처럼 여러 타입이 있다
  1. has_children: 들여쓰기 여부 확인 들여쓰면 부모가 나 자신이 되고 그 아래에 children으로 들어간다 children을 확인하기 위해서는 나의 id로 RetrieveBlockChildren 요청을 다시 보내면 얻을 수 있다.
  2. rich_text: 텍스트의 배열로 위 type에 대한 내용들이 담겨있다
  3. annotations: Bold, Italic, strickthrough, underline, equationO(n2)equation - O(n^2), code 등의 정보가 넘어온다.
  4. plain_text: 텍스트의 내용
    정도가 있다

원래는

위에처럼 내려오는 API를 직접 parsing을 하려고 했다.
문제점은 type이 여러가지가 있는데 이 값에 따라 동적으로 키 값이 바뀐다.
Gson 을 이용해야 하나 하고 찾던중에 구세주를 만났다.
위 Gson을 이용한 notion-sdk-jvm 을 활용해서 파싱을 끝냈다.

다음에 계속...

0개의 댓글