Forthcoming Update to Canvas API Response Header Capitalization

The content in this blog is over six months old, and the comments are closed. For the most recent product updates and discussions, you're encouraged to explore newer posts from Instructure's Product Managers.

IsaacMoore
Instructure
Instructure
13
3482

Canvas.png

Hello, community,

In a forthcoming update, currently slated to be released as part of the June 19th, 2024 Canvas deployment, all HTTP responses from Canvas – for API users, browser users, and others – will transition to full lowercase response header names. We are making this change to comply with industry best practices. The HTTP Semantics standard (RFC 9110) states that “field names are case-insensitive,” meaning that clients should not rely on header names matching any particular case – and in fact, many HTTP client libraries explicitly normalize header name capitalization to prevent this.

However, while case-insensitive header names have been the standard for many years, some clients still rely on a particular capitalization when parsing responses – including some internal tools at Instructure! Clients and partners should double-check any custom tools, firewalls, or other relevant software that may rely on header names matching a particular case. Of particular importance, if you maintain a tool that consumes the Canvas API, is the Link response header.

What is the Link header? Why do I care?

The Link header is an HTTP standard header that can be used for many purposes – for browser clients, mainly to speed up page load. However, Canvas also uses it to communicate pagination information in API responses; clients can check for links in this header to identify and retrieve additional pages. Therefore, clients that use this field in their pagination logic should verify that they are consuming the header in a case-insensitive manner, or their tool may stop working as intended.

How do I validate my change?

We have already released the change to lowercase all response header names to the Beta environment. This provides an extended period for testing integrations before the change is released to Production globally. If your tool functions as expected in Beta, you may safely assume it does not improperly rely on header name capitalization.

Thank you for understanding as we make this change to align with industry best practices and keep Canvas the world’s best LMS.

The content in this blog is over six months old, and the comments are closed. For the most recent product updates and discussions, you're encouraged to explore newer posts from Instructure's Product Managers.

13 Comments