Versions Compared

Key

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

Users API

/api/users/v1/users/
GET - list all users
POST - create

/api/users/v1/users/{username}
GET - get specified user
PATCH - update specified user
DELETE - delete specified user

/api/users/v1/users/me
GET - get authenticated user

/api/users/v1/users/{username}/links
GET - list all linked accounts for the specified user
POST - create a linked account for the specified user

/api/users/v1/users/{username}/links/{link_id}
GET - get specified link
PATCH - update specified link
DELETE - delete specified link

Groups API

/api/users/v1/groups/
GET - list all groups
POST - create a group

/api/users/v1/groups/?username={username}
GET - get all groups for the specified user

/api/users/v1/groups/{group_id}
GET - get specified group
PATCH - update specified group
DELETE - delete specified group

/api/users/v1/groups/{group_id}/users
GET - list all users in the group
POST - add a user in the group

/api/users/v1/groups/{group_id}/users?username={username}
GET - get group information for the specified user and the specified group
PATCH - update group information for the specified user and the specified group
DELETE - delete the specified user from the specified group

Courses API

/api/courses/v1/courses/
GET - list all courses
POST - create a course

/api/courses/v1/courses/{course_id}
GET - get specified course
PATCH - update specified course
DELETE - delete specified course

/api/courses/v1/courses/{course_id}/reruns
GET - list all reruns of the specified course
POST - create a rerun of the specified course

Grades API

Copied from PR comment.

Grades Courses Resource

This is based on our current API conventions and how other existing edX APIs are designed.

Code Block
/grades/v1/courses/              Courses grades for all users for all courses
  ?course_id={}&username={}        Course grade for filtered user(s) in filtered course(s)
  ?course_id={}                    Course grades for all users in filtered course(s)
  ?username={}                     Course grades for filtered user(s) in all their courses

/grades/v1/courses/{course_id}  Course grades for all users for a course
  ?username={}                     Course grade for filtered user(s) in a course

...

 


Grades Users Resource

This is based on the desired need for a user-specific endpoint. We don't currently use this design pattern elsewhere in our system (other than for the user API itself). However, I do see us possibly supporting this pattern (in the future) for certain APIs to allow users and apps to easily get user-specific data without using a filtering API.

Code Block
/grades/v1/users/me/courses        Course grades for authenticated user in all her courses

/grades/v1/users/{user_id}/courses Course grades for a user in all her courses
  ?course_id={}                      Course grades for a user in filtered course(s)

...

Grades Policy Resource

This is similar to the v0 Grades policy API, but follows the URI RFC by putting the course_id resource under a proper hierarchical container (courses).

Code Block
/grades/v1/policy/courses/            Grading policy for all courses
  ?course_id={}                         Grading policy for filtered course(s)

/grades/v1/policy/courses/{course_id} Grading policy for a course