API HTTP
Referencia de endpoints del proyecto. Los GET de lectura y
los GET de likes (/api/posts/likes/…) se pueden
probar desde los enlaces. Las mutaciones y el POST de likes
requieren Postman o curl con body JSON y servidor con Turso.
Posts
Endpoints del blog: lectura de content collections, mutaciones demo sin persistencia y likes en Turso bajo `/api/posts/likes/:slug`.
01 — Lectura (GET SSR)
Lectura de la colección del blog. Puedes abrir los GET en el navegador.
- GET SSR
Listar todos los posts
Devuelve la colección completa del blog en JSON.
- GET SSR
Obtener post por slug
Devuelve un post concreto por su slug.
/api/posts/:slug - GET estático
Get person (demo)
Endpoint de ejemplo con datos de una persona.
02 — Creación (POST SSR)
Requiere servidor en runtime. Prueba con Postman o curl.
- POST SSR
Crear post
Simula la creación de un post (demo, sin persistencia).
/api/postsBody JSON { "title": "Nuevo post", "description": "Descripción de prueba" }
03 — Actualización (PUT / PATCH SSR)
Actualiza un post existente por slug en la URL.
- PUT SSR
Actualizar post completo (PUT)
Reemplaza los campos enviados en el body.
/api/posts/first-postBody JSON { "title": "Título actualizado", "description": "Descripción actualizada" } - PATCH SSR
Actualizar post parcial (PATCH)
Actualiza solo los campos enviados en el body.
/api/posts/first-postBody JSON { "description": "Solo cambio la descripción" }
04 — Eliminación (DELETE SSR)
Simula el borrado de un post por slug.
- DELETE SSR
Eliminar post
No requiere body. El slug va en la URL.
/api/posts/first-post
05 — Likes (GET / POST SSR + Astro DB)
Likes persistidos en la tabla Posts (Turso). Requiere runtime (`pnpm dev --remote` o Worker). Usado por el componente LikeCounter en el blog.
- GET SSR
Obtener likes de un post
Devuelve `{ id, title, likes }`. Si el slug no está en Turso, responde 200 con `title: "Post not found"` y `likes: 0` (sin insertar).
/api/posts/likes/:slug - POST SSR
Incrementar likes (o crear post en Turso)
Si el slug no existe en la tabla Posts, lo crea e incrementa likes. Respuesta: texto `Ok!`.
/api/posts/likes/:slugBody JSON { "likes": 1 }
Clients
CRUD real sobre la tabla Clients con Astro DB y Turso. Todas las rutas requieren servidor en runtime.
01 — Lectura (GET SSR + Astro DB)
Lectura real sobre la tabla Clients. Requiere servidor en runtime.
- GET SSR
Listar clientes
Devuelve todos los registros de la tabla Clients.
- GET SSR
Obtener cliente por id
Devuelve un cliente concreto por su id numérico.
/api/clients/:id
02 — Creación (POST SSR + Astro DB)
Inserta un cliente en Turso. Prueba con Postman o curl.
- POST SSR
Crear cliente
Inserta un nuevo cliente en Astro DB.
/api/clientsBody JSON { "name": "Laura Martínez", "age": 29, "isActive": true }
03 — Actualización (PUT / PATCH SSR + Astro DB)
Actualiza un cliente existente por id en la URL.
- PUT SSR
Reemplazar cliente (PUT)
Actualiza todos los campos del cliente indicado.
/api/clients/1Body JSON { "name": "Laura Martínez", "age": 30, "isActive": false } - PATCH SSR
Actualizar cliente parcial (PATCH)
Actualiza solo los campos enviados en el body.
/api/clients/1Body JSON { "isActive": true }
04 — Eliminación (DELETE SSR + Astro DB)
Borra un cliente por id en la base de datos.
- DELETE SSR
Eliminar cliente
No requiere body. El id va en la URL.
/api/clients/1