APIs
DRF Course API - E-commerce REST API
An e-commerce API used to push Django REST Framework as far as it goes, then documented so the surface is inspectable without running it.

The problem
Most REST tutorials stop at listing and creating a resource. The parts that decide whether an API is usable in production come later: who is allowed to see which records, how a client narrows a large collection without fetching all of it, how pagination behaves under filtering, and whether the endpoints are discoverable by someone who did not write them. This project exists to work through all of that on one coherent domain instead of a toy endpoint.
Approach
- Thirty-six endpoints cover authentication, users, products, orders and order items, including an enhanced set of routes used to compare implementation approaches against the same data.
- Authentication is JWT-based, with registration and login issuing tokens that the documented endpoints accept directly.
- Permission classes control access per view rather than per route string, so authorization is a property of the resource instead of a list of URLs to remember.
- Filtering is dynamic: clients narrow collections by query parameters, and pagination is applied on top so a filtered collection stays navigable.
- The API surface is generated from the code with drf-spectacular, so the OpenAPI schema reflects the actual serializers and cannot drift from the implementation.
- Query profiling was set up to inspect what the ORM actually emits, which is where N+1 problems become visible rather than theoretical.
What it proves
- Thirty-six documented endpoints across authentication, users, products and orders.
- OpenAPI schema generated from the code itself, not hand-maintained.
- Reference published as a static page, so the documentation stays reachable independently of any running server.
- JWT authentication with per-view permission classes and dynamic filtering.