Welcome and Caveat

Columbia Universtiy IT is developing new applications with a microservices REST API architecture using the Python Django REST framework, the {json:api} request/response framework and OAuth 2.0 for authentication and authorization for the backend. These are some lecture notes that we use for internal software developers at Columbia University. They introduce the key concepts and demonstrate how to build a toy backend service.

We are releasing the notes publicly on github in the hope that they are more generally useful and accessible, with the caveat that, while suggestions and improvements are appreciated, there is no promise of support or even accuracy. Also, with apologies in advance, some of the referenced internal Columbia University documents or IT services are not publicly available at this time. In general, these are not something you need access to benefit from this material.

“Sharing is caring!”


I would like to acknowledge many of my CUIT colleagues who have helped me develop this tutorial through their experience and great examples of Django-based development, especially members of the SIS project team (this link will likely not work for you; sorry).

Document Revision History

Date Change
2018-12-01 Switch documentation over to Sphinx
2018-11-20 Kludges required when using sqlserver
2018-11-15 Add Instructor model.
2018-11-08 Convert from google doc (to docx) to markdown with pandoc.
Changes for DJA 2.6.0 for related_serializers.
Miscellaneous cleanup and expansion of examples.
prepare for initial github.com release
2018-07-19 Updates for added openid scopes and claims
2018-06-14 Improved documentation of Relationship & Related views.
Tox, code coverage.
More About Using OAuth 2.0
refresh code examples