Register for InstructureCon25 • Passes include access to all sessions, the expo hall, entertainment and networking events, meals, and extraterrestrial encounters.
Found this content helpful? Log in or sign up to leave a like!
Hello,
Currently I look for my students' grades by searching for data from the gradebook. Considering that the log contains many records, I paginate the results.
Here's an example:
GET => /api/v1/courses/71761/gradebook_history/feed?page=1&per_page=10&workflow_state=graded
At the end, I close the loop and start searching for grades for the next course.
My problem.
When I need to look for grade updates for this course, example: 71761, I start the search starting from page 1 to the last page to look for only the updated grades.
Is there any way in which I can establish an ordering of the results and perform the search starting from the last page with records?
Example:
10-10-2023 - I start searching for grades in course 71761, which has pages up to page 15.
10-11- 2023 - I start the search for grades from page 15 and collect updates until the last page 17.
10-12-2023 - I start the search on page 17 and end up not returning any records.
10-13-2023 - I start the search on page 17 and collect updates up to page 20.
...
This would bring huge savings in my integration where I would not need to search for the entire mass of course grade data with each request scheduling.
I imagine there was something about this that I couldn't absorb, and I appreciate the advance help on this challenge.
If you don't need up to the minute data, I would recommend using Canvas Data.
Alternatively, you can use GraphQL. There are several filters you can use with GraphQL query for submission/grade (e.g. graded since, submitted since, or updated since), you can try the following query at yourschool.instructure.com/graphiql or send POST to /api/graphql
query MyQuery {
legacyNode(_id: "enter_course_id_here", type: Course) {
... on Course {
name
submissionsConnection(filter: {gradedSince: "yyyy-mm-ddThh:mm"}) {
nodes {
assignment {
name
}
grade
gradedAt
user {
name
}
}
}
}
}
}
To interact with Panda Bot in the Instructure Community, you need to sign up or log in:
Sign In