찬찬의 Notion API 정복기 03 - properties

소찬 (Chan)·2022년 7월 24일
0
post-thumbnail

지난번에 title 정보를 알려면, Properties가 어떻게 구성되어 있나 알아야 된다고 했습니다. 생각보다 복잡하므로, 찬찬히(?!) 설명 드리도록 할께요.

속성(properties)

하기와 같이 분류별 이름과 분류 타입(단일 선택형, 다중 선택형, 직접 입력..) 정보를 가지고 있는 정보를 속성(properties)라고 합니다.

예시

  • (위치, 플랫폼, 지역) → 분류별 이름
  • (배달, 쿠팡이츠, 성수) → 분류별 이름에 따른 정보

properties는 하기와 같은 형태의 JSON 값으로 내려옵니다.

'properties': {'title': {'id': 'title',
               'title': [{'annotations': {'bold': False,
                                          'code': False,
                                          'color': 'default',
                                          'italic': False,
                                          'strikethrough': False,
                                          'underline': False},
               'href': None,
               'plain_text': '007. '
               '제임스본드'
               '작전'
               '버전 3.0',
               'text': {'content': '007. '
                                   '제임스본드'
                                   '작전'
                                   '버전 '
                                   '3.0',
                        'link': None},
               'type': 'text'}],
               'type': 'title'}} ...

typetitle일 경우 제목이 되겠죠.
제목을 바꾸고 싶다고 하면, plain_texttextcontent 값을 동일하게 바꿔주면 변경이 됩니다. 변경 예시를 들자면 다음과 같습니다.

title_change = '008. 제임스본드 작전 Plan B'
'properties': {'title': {'id': 'title',
               'title': [{'annotations': {'bold': False,
                                          'code': False,
                                          'color': 'default',
                                          'italic': False,
                                          'strikethrough': False,
                                          'underline': False},
               'href': None,
               'plain_text': title_change,
               'text': {'content': title_change,
                        'link': None},
               'type': 'text'}],
               'type': 'title'}} ...

그럼 title이 아닌 다른 properties는 어떤 식으로 구성이 되어 있을까요?
Notion API Document의 Property Object 링크를 참조하시면 어떤식으로 입력해야 되는지 규칙이 나와 있습니다. 한가지 예시를 보도록 하죠.

'properties': {'진행여부': {'id': 'SPEi',
                          'select': {'color': 'gray',
                                     'id': '1fa10b33-a0b2-4877-9b4f-bea3eb54bb88',
                                     'name': '진행중'},
                                     'type': 'select'}

위 값을 볼때 property 이름은 진행여부 임을 알 수 있습니다.
typeselect 로 되어 있는걸 보니 선택지 형태임을 알 수 있습니다.
입력된 선택지 값은 진행중 이고 colorgrey로 회색임을 알 수 있습니다.
변경해야 될 값 중 typecolor와 같은 경우, API Document 에서 언급한 선택지로 기입을 해야만 오류가 발생하지 않습니다.

color를 예로 들면, default, gray, brown, orange, yellow, green, blue, purple, pink, red 선택지가 있습니다. 이 이외의 선택지를 고르시면 오류가 발생합니다. 가령 나는 sky 색으로 할래 하고선 하기와 같이 기입합니다.

'properties': {'진행여부': {'select': {'color': 'sky',
                                     'name': '진행중'},
                                     'type': 'select'}

sky는 지원하지 않는 옵션으로 오류가 발생합니다.

profile
QA Specialist

1개의 댓글

comment-user-thumbnail
알 수 없음
2022년 8월 8일
수정삭제

삭제된 댓글입니다.

1개의 답글