Overview
This document provides a comprehensive overview of all API endpoints in the Tzine web application. Tzine is a restaurant discovery platform that connects food lovers with local restaurants.
API Base Url: https://tzine.click/api/
API Endpoints
Restaurant Management
GET /api/restaurants
Purpose: Retrieve all restaurants-
Method: GET
Authentication: None required
Response:
{
"success": true,
"data": [
{
"_id": "string",
"name": "string",
"location": "string",
"owner": "string",
"email": "string",
"phoneNumber": "string",
"instagramHandle": "string",
"coverPhoto": "string",
"createdAt": "string"
}
]
}
POST /api/restaurants
Purpose: Create a new restaurant
Method: POST
Authentication: Admin required
Body:
{
"name": "string",
"location": "string",
"owner": "string",
"email": "string",
"phoneNumber": "string",
"instagramHandle": "string",
"coverPhoto": "string"
}
GET /api/restaurants/[id]
Purpose: Get specific restaurant with menu data
Method: GET
Parameters: id (restaurant ID)
Authentication: None required
Response: Returns restaurant details and associated menu
PUT /api/restaurants/[id]
Purpose: Update a specific restaurant
Method: PUT
Parameters: id (restaurant ID)
Authentication: Admin required
Body: Restaurant update data
DELETE /api/restaurants/[id]
Purpose: Delete a restaurant and its menu
Method: DELETE
Parameters: id (restaurant ID)
Authentication: Admin required
Menu Management
GET /api/menus
Purpose: Get menus (optionally filtered by restaurant)
Method: GET
Query Parameters: - restaurantId (optional): Filter by specific restaurant
Authentication: None required
Response: Array of menu objects with populated restaurant data
POST /api/menus
Purpose: Create a new menu
Method: POST
Authentication: Admin required
Body:
{
"restaurantId": "string",
"dishes": [
{
"name": "string",
"description": "string",
"price": "number",
"coverPhoto": "string"
}
]
}
GET /api/menus/[id]
Purpose: Get specific menu by ID
Method: GET
Parameters: id (menu ID)
Authentication: None required
PUT /api/menus/[id]
Purpose: Update a specific menu
Method: PUT
Parameters: id (menu ID)
Authentication: Admin required
DELETE /api/menus/[id]
Purpose: Delete a specific menu
Method: DELETE
Parameters: id (menu ID)
Authentication: Admin required
GET /api/menu/[id]
Purpose: Get menu by restaurant ID (alternative endpoint)
Method: GET
Parameters: id (restaurant ID)
Authentication: None required
Search Functionality
GET /api/search
Purpose: Search restaurants and dishes
Method: GET
Query Parameters:
-
q: Search query (required) -
type: Search type (`all`,restaurants,dishes) - default:all -
location: Location filter (optional) -
limit: Results per page - default:20 -
page: Page number - default:1
Authentication: None required
Response: Paginated search results with restaurants and dishes
POST /api/search
Purpose: Advanced search with filters
Method: POST
Authentication: None required
Body:
{
"query": "string",
"filters": {
"location": "string",
"owner": "string",
"hasInstagram": "boolean",
"dateRange": {
"start": "date",
"end": "date"
},
"priceRange": {
"min": "number",
"max": "number"
}
},
"sort": {
"field": "string",
"order": "asc|desc"
},
"limit": "number",
"page": "number"
}
Response: Paginated search results with restaurants and dishes
This documentation provides a complete overview of the Tzine web application's API endpoints. The Web Application is designed to be a comprehensive restaurant discovery platform with both public-facing features and admin management capabilities.
Testing the API
While you can test the API using any tool that can make HTTP requests (like curl, browser tools, or code clients), we highly recommend using Postman for a more efficient and feature-rich experience during development and testing
Why Postman?
-
Easily build and send various HTTP requests (GET, POST, PUT, DELETE).
-
Organize requests into collections for easy re-use and sharing.
-
Create environment variables to manage different API keys or endpoints (e.g., development, staging, production).
-
Automate tests to validate response structures or data.
-
Visualise request and response data clearly.
-
Download and install Postman from Postman Download Link.
Support and Contact Information
Technical support details
-
Email:
support@tzine.click -
Phone:
+255 (763) 24 6216