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 |