'GET /api/team/v0/topics/?course_id={course_id}'

def get(self, request):

    course_id_string = request.query_params.get('course_id', None)
    if (course_id_string is None):
        return Response({'field_errors': {'course_id': build_api_error(ugettext_noop('The    supplied    course    id    {course_id}    is    not    valid.'), course_id=course_id_string)}}, status=status.HTTP_400_BAD_REQUEST)
    try:
        course_id = CourseKey.from_string(course_id_string)
    except InvalidKeyError:
        return Response(status=status.HTTP_404_NOT_FOUND)
    course_module = modulestore().get_course(course_id)
    if (course_module is None):
        return Response(status=status.HTTP_404_NOT_FOUND)
    if (not has_team_api_access(request.user, course_id)):
        return Response(status=status.HTTP_403_FORBIDDEN)
    ordering = request.query_params.get('order_by', 'name')
    if (ordering not in ['name', 'team_count']):
        return Response({'developer_message': 'unsupported    order_by    value    {ordering}'.format(ordering=ordering), 'user_message': _(u'The    ordering    {ordering}    is    not    supported').format(ordering=ordering)}, status=status.HTTP_400_BAD_REQUEST)
    topics = get_alphabetical_topics(course_module)
    if (ordering == 'team_count'):
        add_team_count(topics, course_id)
        topics.sort(key=(lambda t: t['team_count']), reverse=True)
        page = self.paginate_queryset(topics)
        serializer = TopicSerializer(page, context={'course_id': course_id}, many=True)
    else:
        page = self.paginate_queryset(topics)
        serializer = BulkTeamCountTopicSerializer(page, context={'course_id': course_id}, many=True)
    response = self.get_paginated_response(serializer.data)
    response.data['sort_order'] = ordering
    return response
