Topic
는 과정 내에서 CourseWork
및 CourseWorkMaterial
스트림 항목을 그룹화하기 위한 라벨입니다. Topic
는 일반적으로 이러한 항목을 유사성(예: 항목이 할당된 주 또는 과목)별로 분류하는 데 사용됩니다. 사용자는 클래스룸 UI의 과제 뷰에서 스트림 항목을 시각적으로 정리하고 필터링할 수 있습니다.
각 Topic
는 서버에서 할당한 고유한 ID로 식별됩니다. Topic
리소스에는 다음도 포함됩니다.
name
: 클래스룸 UI에 표시되는 표시 이름입니다.updateTime
:Topic
가 마지막으로 업데이트된 시간입니다.courseId
:Topic
가 연결된 과정의 ID입니다.
주제 만들기
다음 샘플과 같이 topics.create()
메서드를 사용하여 과정에 새 Topic
를 만들 수 있습니다.
자바
Python
topic = {
"name": 'Example Topic'
}
response = service.courses().topics().create(
courseId=<course ID or alias>,
body=topic).execute()
print('Topic created: ', response['name'])
name
필드는 항상 필수이며 비어 있지 않은 문자열이어야 합니다. 다른 모든 필드는 선택사항입니다.
주제 세부정보 검색
다음 샘플과 같이 topics.get()
메서드를 사용하여 ID별로 특정 Topic
를 검색할 수 있습니다.
자바
Python
response = service.courses().topics().get(
courseId=<course ID or alias>,
id=<topic ID>).execute()
print('{0} ({1})'.format(response['name'], response['topicId']))
다음 샘플과 같이 topics.list()
메서드를 사용하여 과정의 모든 Topic
를 검색합니다.
자바
Python
topics = []
page_token = None
while True:
response = service.courses().topics().list(
pageToken=page_token,
pageSize=30,
courseId=<course ID or alias>).execute()
topics.extend(response.get('topic', []))
page_token = response.get('nextPageToken', None)
if not page_token:
break
if not topics:
print('No topics found.')
else:
print('Topics:')
for topic in topics:
print('{0} ({1})'.format(topic['name'], topic['topicId']))
주제 업데이트
다음 샘플과 같이 topics.patch()
메서드를 사용하여 기존 Topic
name
를 업데이트할 수 있습니다.
자바
Python
topic = {
"name": "New Topic Name"
}
response = service.courses().topics().patch(
courseId=<course ID or alias>,
id=<topic ID>,
updateMask="name",
body=topic).execute()
print('{0} ({1})'.format(response['name'], response['topicId']))
Topic
id
및 updateTime
필드는 서버에서 생성되며 API로 업데이트할 수 없습니다.
주제 삭제
다음 샘플과 같이 topics.delete()
메서드를 사용하여 기존 Topic
를 삭제할 수 있습니다.