Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/teofilobetancourt/Tradiciones-y-Sabores/llms.txt

Use this file to discover all available pages before exploring further.

The Menu API exposes the plato table — the master catalog of every dish Tradiciones y Sabores serves. Front-of-house interfaces use GET /api/platos to populate order forms and display boards, while kitchen managers use POST /api/platos to add seasonal specials or permanent additions. Both endpoints are available under the /api/productos alias, which returns the same data in the same format for backward compatibility with older integrations.

GET /api/platos

Returns the full dish catalog. Results are not paginated. Use the categoria query parameter to retrieve only dishes belonging to a specific course or type. Alias: GET /api/productos

Query Parameters

categoria
string
Filters results to a single dish category. Must exactly match one of the five CategoriaPlatoEnum string values listed in the Category Reference table below. Omit to return all dishes across every category.

Response

Returns an array of dish objects. Each object contains:
id_producto
integer
Dish ID mirrored from id_plato. Included for compatibility with legacy clients that use the /api/productos alias.
id_plato
integer
Primary key of the dish record in the plato table.
nombre
string
Display name of the dish, e.g. "Pabellón Criollo".
descripcion
string
Optional description of the dish. Returns an empty string "" when not set.
precio
number
Price of the dish as a floating-point number, e.g. 18.50.
categoria
string
Category the dish belongs to. One of the five CategoriaPlatoEnum string values.
disponible
boolean
Always true in the current implementation. Dishes can be managed by removing them from the catalog entirely.
# All dishes
curl -X GET http://localhost:5000/api/platos \
  -H "Accept: application/json"

# Only main courses
curl -X GET "http://localhost:5000/api/platos?categoria=plato_principal" \
  -H "Accept: application/json"

# Only drinks, using the /api/productos alias
curl -X GET "http://localhost:5000/api/productos?categoria=bebida" \
  -H "Accept: application/json"

POST /api/platos

Registers a new dish in the menu catalog. The request body is validated against the PlatoIn Pydantic schema, so nombre, precio, and categoria are required. The categoria value must be one of the five valid enum strings — invalid values will be rejected with a 422 Unprocessable Entity error. Response status: 201 Created

Request Body

nombre
string
required
Display name for the dish. Maximum 100 characters. Must be a non-empty string, e.g. "Cachapas con Queso Mano".
descripcion
string
Optional longer description of the dish, ingredients, or preparation style. Maximum 255 characters. Omit or pass null to leave it blank.
precio
number
required
Selling price of the dish. Stored with up to 2 decimal places, e.g. 12.75. Must be a positive number.
categoria
string
required
Course or type category. Must be exactly one of the five CategoriaPlatoEnum string values. See the Category Reference table below for valid options.

Response

Returns the newly created dish as a PlatoOut object:
id_plato
integer
Auto-incremented primary key assigned to the new dish.
nombre
string
Name of the dish as stored.
descripcion
string | null
Description of the dish, or null if none was provided.
precio
number
Price as stored in the database.
categoria
string
Category enum value as stored.
POST /api/platos returns a PlatoOut object (keys: id_plato, nombre, descripcion, precio, categoria) rather than the extended compatibility format returned by GET /api/platos. The id_producto and disponible fields are not included in the creation response.
curl -X POST http://localhost:5000/api/platos \
  -H "Content-Type: application/json" \
  -d '{
    "nombre": "Cachapas con Queso de Mano",
    "descripcion": "Masa de maíz tierno rellena con queso blanco artesanal, servida con mantequilla",
    "precio": 14.50,
    "categoria": "entrada"
  }'

Category Reference

All five valid CategoriaPlatoEnum values are listed below. The string values are used verbatim in both the query parameter and the request body.
Enum MemberString ValueTypical Examples
entradaentradaTequeños, empanadas, sopas, ensaladas
plato_principalplato_principalPabellón criollo, carne asada, pollo guisado
postrepostreQuesillo, bienmesabe, torta negra
bebidabebidaJugo natural, malta, café negro, agua mineral
acompañanteacompañanteArroz, caraotas, tajadas, tostones
The acompañante enum member is stored in the database with the ñ character (acompañante). Make sure your HTTP client sends the request body as UTF-8 to avoid encoding issues.

Build docs developers (and LLMs) love