Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

MethodDescriptionQuery ParametersStatuses
GET
  • Get course listing page with aggregate data
    • Aggregate data is NOT affected by filters/pagination
  • Course summary data NOT loaded yet
  • However, query parameters are accepted and used for subsequent course summary AJAX call
  • Changing the query string will not reload the page, but will trigger an AJAX call that will update the table
  • Sorting/filtering/paging the table will trigger an AJAX call and update the query string
  • sortKey (optional): One of the following. Default: catalog_course_title
    • catalog_course_title
    • start_date
    • end_date
    • cumulative_count
    • count
    • count_change_7_days
    • verified_enrollment
    • passing_users
  • order (optional): One of the following. Default: asc
    • asc
    • desc
  • availability (optional): Comma-separated list of one or more of the following. Default: all availabilities
    • Archived
    • Current
    • Upcoming
    • Unknown
  • program_ids (optional): Comma-separated list of course IDs to filter by. Default: all programs
  • text_search (optional): (Sub)string to filter by for course titles and IDs. Default: do not filter by search string
  • page (optional): Page number. Default: 1

For defaults, put enumeration-style key-value pairs in the URL

  • 401 if not authenticated
  • 200 otherwise

TODO: Look into what happens for bad query params. Stick with current functionality. Want to keep same URL scheme and page behavior to avoid breaking URLs

Insights: Course Summaries API

...

MethodDescriptionQuery ParametersReturn ValuesStatuses
GET

Get paginated list of course summaries

  • order_by (optional): See CourseIndex View 'sortKey'
  • sort_order (optional): See Course Index View 'order'
  • ... all other params from Course Index View ...
  • page_size (optional): Page size. Max: 100, Default: 100
  • results: array of page of result dicts with fields:
    • count
    • end_date
    • created
    • cumulative_count
    • programs
    • enrollment_modes
    • availability
    • verified_enrollment
    • pacing_type
    • passing_users
    • count_change_7_days
    • course_id
    • catalog_course_title
    • catalog_course: course ID without run
    • start_date
  • count: total number of results (all pages)
  • next: link to next page
  • previous: link to previous page
  • last_updated: String containing date of time result summaries were updated
  • 401 if not authenticated
  • 404 if no results
    • TODO: what does learner analytics API do?
  • 422 if bad parameter key
  • 422 if bad parameter value
    • TODO: return error dictionary that tell what keys/values are bad
  • 200 otherwise

Analytics Data API: Course Aggregate Data

http(s)://<data_api_host>/api/v0.1v1/course_aggregate_data/?<query_string>Analytics Data API: Course Summariesstring>
MethodDescriptionQuery ParametersReturn ValueAccess
GETGet aggregate data about a set of courses
  • course_ids (optional): Comma-separated list of course IDs to filter by. Default: All courses
  • current_enrollment
  • total_enrollment
  • enrollment_change_7_days
  • verified_enrollment

TODO: Change these to names of the fields in CourseMetaSummaryEnrollment

Same as Insights Course Summaries API
POSTSame as GET, but number of course IDs is not restricted by URL lengthSame as above, but comma-separated lists are JSON arrays of stringsSame as aboveSame as above

...

http(s)://<data_api_host>/api/v0.1v1/course_summaries/?<query_string>
MethodDescriptionQuery ParametersReturn ValueAccess
GETGet a paginated list of course summaries, with optional filtering and sorting
  • course_ids (optional): Comma-separated list of course IDs to filter by. Default: All courses
  • ... all params from Insights Course Summaries API ...

Same as Insights Course Summaries API, but

  • last_updated is not included
  • next/previous have API hostname in URL

    TODO: calculate last_updated in the Data API and pass in from this endpoint
Same as Insights Course Summaries API
POSTSame as GET, but number of course IDs is not restricted by URL lengthSame as above, but comma-separated lists are JSON arrays of strings

Same as above

  • QUESTION: what to do about next/previous URLs?
Same as above