Documentación de API REST con editor de texto
Clase 8 de 17 • Curso de API REST con Javascript
Resumen
Domina cómo documentar una API REST solo con un editor de texto: desde definir recursos y endpoints hasta detallar verbos HTTP, headers, body en JSON y status codes. Aquí verás una guía práctica para una API de productos, clara y lista para compartir.
¿Cómo estructurar recursos y endpoints en una API REST?
La base son los recursos: entidades que la aplicación maneja. En una API de productos, los recursos son productos, categorías y usuarios. Cada recurso debe tener un endpoint identificable y en plural para mantener consistencia.
¿Qué es un recurso y cómo se nombra en plural?
- Usa sustantivos en plural: products, categories, users.
- Cada recurso tiene un propósito único. Products gestiona productos. Categories gestiona categorías. Users gestiona usuarios.
- Identificadores únicos: cada elemento dentro de un recurso debe poder identificarse (por ejemplo, productId).
¿Cómo se forman las URLs por recurso?
- Patrón estándar: slash + nombre del recurso.
/products
/categories
/users
- Para un elemento específico, agrega el identificador como parámetro de ruta.
/products/{productId}
¿Cómo se relacionan productos y categorías?
- Un producto pertenece a una categoría y una categoría tiene muchos productos.
- Se documenta con atributos como categoryId en el body y con filtros por query params.
¿Qué operaciones http usar y qué respuestas esperar?
Sobre cada recurso, define las acciones con verbos HTTP: GET, POST, PUT, PATCH, DELETE. Documenta para cada una: URL, request, responses con status codes y ejemplos.
¿Cómo listar y obtener detalle con get?
- Lista de productos.
GET /products
- Responses esperadas.
- 200: éxito.
- 400: error en la petición.
-
500: error del servidor.
-
Detalle de un producto.
GET /products/{productId}
- Responses esperadas.
- 200: éxito, encontrado.
- 404: no encontrado.
- 500: error del servidor.
¿Cómo crear un producto con post y qué headers usar?
- Creación de producto.
POST /products
Accept: application/json
Content-Type: application/json
- Body en JSON de la solicitud.
{
"name": "T-shirt",
"price": 40,
"categoryId": 1
}
- Response esperado (el servidor asigna el id).
{
"id": 1,
"name": "T-shirt",
"price": 40,
"categoryId": 1
}
- Status codes.
- 201: created.
- 400: bad request.
- 500: error del servidor.
¿Cómo actualizar con put o patch y cuándo eliminar con delete?
- Actualización completa.
PUT /products/{productId}
Accept: application/json
Content-Type: application/json
-
Responses: 200 éxito, 400 bad request, 500 error del servidor.
-
Actualización parcial.
PATCH /products/{productId}
-
Mismo patrón de request/response que PUT, pero la edición es parcial.
-
Eliminación.
DELETE /products/{productId}
- Responses.
- 204: eliminación exitosa sin body.
- 404: producto no encontrado.
- 500: error del servidor.
¿Cómo definir bodies, headers y filtros con query params?
El body solo aplica cuando envías datos (por ejemplo, POST y PUT). Define el formato con headers y ejemplifica el contenido. Los filtros se documentan como query params en peticiones GET.
¿Qué headers y formatos usar con json?
- Indica siempre formato y aceptación de JSON.
Accept: application/json
Content-Type: application/json
- Justifica: asegura que lo enviado y lo recibido sea JSON.
¿Qué estructura de body necesitas para productos?
- Atributos clave en creación: name, price, categoryId.
- Diferencia clave: en creación no envías id; en la respuesta el servidor lo retorna.
- Relación entre recursos: categoryId vincula el producto con su categoría.
¿Cómo documentar filtros con query params?
- Filtro por categoría en la lista de productos.
GET /products?categoryId=1
- Explica el patrón: signo de interrogación + nombre del parámetro + valor.
- Aclara que aplica a peticiones GET para filtrar resultados.
—
Habilidades y conceptos que aplicarás de inmediato: - Definir recursos y endpoints en plural con identificadores únicos. - Mapear verbos HTTP a acciones del CRUD. - Especificar headers y body en application/json. - Documentar status codes claros: 200, 201, 204, 400, 404, 500. - Diferenciar parámetros de ruta y query params en filtros. - Describir relaciones entre recursos como product–category.
Te leo: completa la documentación de los endpoints para categorías y usuarios, compártela y comenta qué retos encontraste.