> REST_API.JWT

> Base: /api/v1 — JSON — autenticación Bearer JWT (HS256, 1 h)

>> Público: perfil, posts publicados, servicios activos, contacto

>> Protegido: CRUD completo, listado de mensajes. Login con el usuario admin.

> ENDPOINTS

MÉTODORUTAJWT
GET/api/v1/no
GET/api/v1/healthno
POST/api/v1/auth/loginno
GET/api/v1/auth/me
GET/api/v1/perfilno
GET/api/v1/serviciosno*
POST/api/v1/servicios
PUT/api/v1/servicios/<id>
DELETE/api/v1/servicios/<id>
GET/api/v1/postsno*
GET/api/v1/posts/<id>no*
POST/api/v1/posts
PUT/api/v1/posts/<id>
DELETE/api/v1/posts/<id>
POST/api/v1/contactosno
GET/api/v1/contactos

* Sin token: solo publicados / activos. Con JWT: incluye borradores e inactivos.

> EJEMPLO

curl -s -X POST https://javierdotnet.com/api/v1/auth/login \
  -H 'Content-Type: application/json' \
  -d '{"username":"admin","password":"***"}'

curl -s https://javierdotnet.com/api/v1/auth/me \
  -H 'Authorization: Bearer <token>'

curl -s https://javierdotnet.com/api/v1/posts

> CONSOLA

> token: (ninguno)

// la respuesta JSON aparece aquí