Important Notes!
For endpoints that contain a {param}, the Parameters column lists paramInURL: correspondingModelAttribute. If a corresponding model attribute isn't listed, that means the parameter and attribute share the same name.
For example, 'cohort: adjustedGradDate' means that {cohort} corresponds to the attribute adjustedGradDate. Alternatively, if only 'firstName' is listed, that means {firstName} corresponds to the attribute firstName.
- About Query Endpoints
- Student Endpoints
- Course Endpoints
- Exam Endpoints
- StudentExam Endpoints
- StudentCourse Endpoints
- Note Endpoints
All query endpoints are the pluralized model name followed by '?' (ie. /objects?).
Parameters are assigned values using the syntax 'paramName=paramValue'.
Parameters are strung together using '&'.
/objects?param1=foo¶m2=bar¶m3=1234
Returns all objects where param1 is foo, param2 is bar, and param3 is 1234.
/objects?param1=optionOne¶m1=optionTwo
Returns all objects where param1 is optionOne or optionTwo.
/objects?param=50
Returns all objects where param is equal to 50.
/objects?param=50¶m=50
Returns all objects where param is equal to 50.
/objects?param=50¶m=70
Returns all objects where param is between 50 and 70, inclusive.
If a parameter can be queried with min and max, it will be listed next to the parameter name in the tables below, for example: gpa (min/max).
String queries are case-sensitive at the moment.
There are a few different ways that string queries may be treated:
- Exact match: returns objects where string exactly matches given string
- Starts with: returns objects where string starts with the given string
- Substring: returns objects where string contains the given string
If the query checks for starts with or substring, it will be listed next to the parameter name in the tables below, for example: firstName (startsWith), or courseName (substring). If nothing is listed next to a parameter name, this means the query will check for an exact match.
_Note: Both _start
and _end
need to be set if either are to be used in GET /students?
and will return _start
- _end
number of students. Also, name_like
will query against the firstName
and lastName
columns.
Type | URL | Description | Returns | Parameters |
---|---|---|---|---|
GET | .../students? | Get all students that match the query parameters | Array<Student> |
|
GET | .../students/ | Get all students | Array<Student> | |
GET | .../students/{id} | Get student with given NUID | Student |
|
GET | .../students/{id}/courses | Get all of a student's courses | Array<Course> |
|
GET | .../students/{studentId}/courses/{courseId} | Get a student's instance of a course | StudentCourse |
|
GET | .../students/{studentId}/courses/{courseID}/exams | Get all student's exam instances from a course | Array<StudentExam> |
|
GET | .../students/{id}/exams | Get all of a student's exams | Array<Exam> |
|
GET | .../students/{studentId}/exams/{examId} | Get a student's instance of an exam | StudentExam |
|
GET | .../students/{id}/notes | Get all of a student's notes | Array<Note> |
|
POST | .../students/ | Create a new student | ||
PUT | .../students/{id} | Update student with given NUID |
|
|
PATCH | .../students/{id} | Update student with given NUID |
|
|
DELETE | .../students/{id} | Delete student with given NUID |
|
Note: Both _start
and _end
need to be set if either are to be used in GET /courses?
and will return _start
- _end
number of courses.
Type | URL | Description | Returns | Parameters |
---|---|---|---|---|
GET | .../courses? | Get all courses that match the query parameters |
|
|
GET | .../courses/ | Get all courses | ||
GET | .../courses/{id} | Get course with the given ID | Course |
|
POST | .../courses/ | Create a course | ||
PUT | .../courses/{id} | Update course with the given course id |
|
|
PATCH | .../courses/{id} | Update course with the given course id |
|
|
DELETE | .../courses/{id} | Delete course with the given course id |
|
Type | URL | Description | Returns | Parameters |
---|---|---|---|---|
GET | .../exam? | Get all exams that match the query parameters | Array<Exam> |
|
GET | .../exams/ | Get all exams | Array<Exam> | |
GET | .../exams/{id} | Get exam with the given exam id | Exam |
|
GET | .../exams/{id}/instances | Get all instances of an Exam given an exam id | Array<StudentExam> |
|
POST | .../exams/ | Create an exam | ||
PUT | .../exams/{id} | Update an exam given an exam id |
|
|
PATCH | .../exams/{id} | Update an exam given an exam id |
|
|
DELETE | .../exams/{id} | Delete an exam given an exam id |
|
Type | URL | Description | Returns | Parameters |
---|---|---|---|---|
GET | .../studentExams? | Get all studentExam instances that match the query parameters | Array<StudentExam> |
|
GET | .../studentExams/ | Get all studentExam instances | Array<StudentExam> | |
GET | .../studentExams/{id} | Get a studentExam instance given a studentExam id | StudentExam |
|
POST | .../studentExams/ | Create a studentExam instance | ||
PUT | .../studentExams/{id} | Update a studentExam instance given a studentExam id |
|
|
PATCH | .../studentExams/{id} | Update a studentExam instance given a studentExam id |
|
|
DELETE | .../studentExams/{id} | Delete a studentExam instance given a studentExam id |
|
Type | URL | Description | Returns | Parameters |
---|---|---|---|---|
GET | .../studentCourses? | Get all studentCourse instances that match the given parameters | Array<StudentCourse> |
|
GET | .../studentCourses/ | Get all studentCourse instances | Array<StudentCourse> | |
GET | .../studentCourses/{id} | Get a studentCourse instance given a studentCourse id | StudentCourse |
|
POST | .../studentCourses/ | Create a studetnCourse instance | ||
PUT | .../studentCourses/{id} | Update a studentCourse instance given a studentCourse id |
|
|
PATCH | .../studentCourses/{id} | Update a studentCourse instance given a studentCourse id |
|
|
DELETE | .../studentCourses/{id} | Delete a studentCourse instance given the studentCourse id |
|
Type | URL | Description | Returns | Parameters |
---|---|---|---|---|
GET | .../notes? | Get all note instances that match the given parameters | Array<Note> |
|
GET | .../notes/ | Get all notes | Array<Note> | |
GET | .../notes/{id} | Get a note with the given note id | Note |
|
POST | .../notes/ | Create a note | ||
PUT | .../notes/{id} | Update a note given a note id |
|
|
PATCH | .../notes/{id} | Update a note given a note id |
|
|
DELETE | .../notes/{id} | Delete a note given a note id |
|