The Little Lemon API is a Django REST Framework backend developed as part of Meta's APIs course. It provides a RESTful API for a fictional restaurant, allowing clients to manage menu items, shopping carts, orders, and user roles. The project uses Django, Django REST Framework, a relational database, serializers, viewsets, permissions, filtering, and token-based authentication to demonstrate how to build and secure production-style web APIs.
(2026)
POST /api/users- Register a new userGET /api/users/users/me/- Retrieve the authenticated user's profilePOST /token/login/- Generate an authentication token
GET /api/menu-items- List all menu itemsGET /api/menu-items/{menuItem}- Retrieve a specific menu item
GET /api/menu-items- List all menu itemsPOST /api/menu-items- Create a menu itemGET /api/menu-items/{menuItem}- Retrieve a specific menu itemPUT /api/menu-items/{menuItem}- Update a menu itemPATCH /api/menu-items/{menuItem}- Partially update a menu itemDELETE /api/menu-items/{menuItem}- Delete a menu item
- Filtering
- Searching
- Sorting
- Pagination
GET /api/groups/manager/users- List all managersPOST /api/groups/manager/users- Assign a user to the manager groupDELETE /api/groups/manager/users/{userId}- Remove a user from the manager groupGET /api/groups/delivery-crew/users- List all delivery crewPOST /api/groups/delivery-crew/users- Assign a user to the delivery crew groupDELETE /api/groups/delivery-crew/users/{userId}- Remove a user from the delivery crew group
GET /api/cart/menu-items- View the current user's cartPOST /api/cart/menu-items- Add a menu item to the cartDELETE /api/cart/menu-items- Clear the current user's cart
GET /api/orders- View the customer's ordersPOST /api/orders- Place an order from the current cartGET /api/orders/{orderId}- View a specific order
GET /api/orders- View all ordersPUT /api/orders/{orderId}- Update an order, including assigning delivery crew and order statusPATCH /api/orders/{orderId}- Partially update an orderDELETE /api/orders/{orderId}- Delete an order- Filtering by order status
- Sorting and pagination
GET /api/orders- View orders assigned to the delivery crew memberPATCH /api/orders/{orderId}- Update order delivery status
- 🔑 Token-based authentication
- 👥 Role-based permissions for Managers, Customers, and Delivery Crew
- 🚦 API throttling: 5 requests per minute
- 🔎 Filtering and searching
↕️ Sorting and pagination- 📋 Appropriate HTTP status codes
- 🌐 RESTful
GET,POST,PUT,PATCH, andDELETEoperations