{"info":{"_postman_id":"b8cdd81a-57ac-4a28-a9cd-fb997d94959b","name":"Api Codigo Abisal","description":"<html><head></head><body><h1 id=\"api-codigo-abisal\">🌊 API Código Abisal</h1>\n<p>API oficial del proyecto <strong>Código Abisal</strong>, una aplicación centrada en los descubrimientos de las profundidades del océano.<br>Permite a los usuarios explorar artículos científicos, registrarse, crear contenido y, para los administradores, gestionar tanto artículos como usuarios.</p>\n<h2 id=\"🧭-roles-y-permisos\">🧭 Roles y permisos</h2>\n<ul>\n<li><p><strong>Público:</strong> puede visualizar todos los artículos.</p>\n</li>\n<li><p><strong>Usuario registrado:</strong> puede crear nuevos artículos.</p>\n</li>\n<li><p><strong>Administrador:</strong> puede editar, eliminar artículos y gestionar usuarios.</p>\n</li>\n</ul>\n<h2 id=\"🔐-autenticación\">🔐 Autenticación</h2>\n<p>La API utiliza <strong>JWT (JSON Web Tokens)</strong> para la autenticación.<br>Cada petición protegida requiere el encabezado:</p>\n<h2 id=\"🧩-estructura\">🧩 Estructura</h2>\n<ul>\n<li><p><strong>Auth:</strong> registro e inicio de sesión.</p>\n</li>\n<li><p><strong>Artículos:</strong> CRUD de artículos científicos.</p>\n</li>\n<li><p><strong>Usuarios:</strong> gestión de usuarios y roles.</p>\n</li>\n</ul>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"🌊 API Código Abisal","slug":"api-codigo-abisal"}],"owner":"46421313","collectionId":"b8cdd81a-57ac-4a28-a9cd-fb997d94959b","publishedId":"2sB3QNp8Mg","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2025-10-15T15:27:25.000Z"},"item":[{"name":"🧑‍💻 Auth","item":[{"name":"http://localhost:8000/auth/register","id":"5cefc476-f114-45ea-bd08-9ccbc9a5f9ed","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"inherit","inherit":{"basicConfig":[]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"name\": \"Gema\",\r\n  \"last_name\": \"Garcia\",\r\n  \"username\": \"Gema_Garcia\",\r\n  \"email\": \"gemagarcia@hotmail.com\",\r\n  \"password\": \"12345678\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:8000/auth/register","description":"<h2 id=\"🧾-registrar-nuevo-usuario\">🧾 Registrar nuevo usuario</h2>\n<p>Crea un nuevo usuario en el sistema y devuelve un token JWT para autenticarse en las siguientes peticiones.</p>\n<p><strong>Acceso:</strong> Público (no requiere autenticación)</p>\n<p><strong>Body (JSON):</strong></p>\n<p>{<br />\"name\": \"Gema\",<br />\"last_name\": \"Garcia\",<br />\"username\": \"Gema_Garcia\",<br />\"email\": \"<a href=\"https://mailto:gemagarcia@hotmail.com\">gemagarcia@hotmail.com</a>\",<br />\"password\": \"12345678\"<br />}</p>\n<p><strong>Ejemplo de respuesta (201 Created):</strong></p>\n<p>{</p>\n<p>\"message\": \"Usuario registrado exitosamente\",</p>\n<p>\"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\"</p>\n<p>}</p>\n<p><strong>Notas:</strong></p>\n<ul>\n<li><p>No requiere token JWT.</p>\n</li>\n<li><p>Guarda el token en la variable {{token}} para usarlo en peticiones protegidas.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"http","port":"8000","path":["auth","register"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"1f435d57-2d23-4b7c-b3e9-4f918aec4607","name":"http://localhost:8000/auth/register","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"name\": \"Gema\",\r\n  \"last_name\": \"Garcia\",\r\n  \"username\": \"Gema_Garcia\",\r\n  \"email\": \"gemagarcia@hotmail.com\",\r\n  \"password\": \"12345678\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:8000/auth/register"},"status":"Created","code":201,"_postman_previewlanguage":"JSON","header":[{"key":"X-Powered-By","value":"Express","type":"text"},{"key":"Access-Control-Allow-Origin","value":"http://localhost:5174","type":"text"},{"key":"Vary","value":"Origin","type":"text"},{"key":"Content-Type","value":"application/json; charset=utf-8","type":"text"},{"key":"Content-Length","value":"264","type":"text"},{"key":"ETag","value":"W/\"108-nX9hcIeP6jrK7Qowb437cm+xZ+U\"","type":"text"},{"key":"Date","value":"Wed, 15 Oct 2025 10:19:48 GMT","type":"text"},{"key":"Connection","value":"keep-alive","type":"text"},{"key":"Keep-Alive","value":"timeout=5","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Usuario registrado exitosamente\",\n    \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI3IiwiZW1haWwiOiJnZW1hZ2FyY2lhQGhvdG1haWwuY29tIiwicm9sZSI6InVzZXIiLCJpYXQiOjE3NjA1MjM1ODgsImV4cCI6MTc2MTEyODM4OH0.ZN63k8yFMjh6Po-v3fxEBviS7eTL_Egf1ABWebFyCzg\"\n}"}],"_postman_id":"5cefc476-f114-45ea-bd08-9ccbc9a5f9ed"},{"name":"http://localhost:8000/auth/login","id":"988201cf-5843-4b73-ad59-6f29920ea1f4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"inherit","inherit":{"basicConfig":[]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":" { \r\n     \"email\": \"gemita50@hotmail.com\",\r\n  \"password\": \"12345678\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:8000/auth/login","description":"<h2 id=\"🔑-iniciar-sesión-de-usuario\">🔑 Iniciar sesión de usuario</h2>\n<p>Permite a un usuario autenticarse y obtener su token JWT.</p>\n<p><strong>Acceso:</strong> Público (no requiere token)</p>\n<p><strong>Body (JSON):</strong></p>\n<p>{</p>\n<p>\"email\": \"<a href=\"https://null\">gemita50@hotmail.com</a>\",</p>\n<p>\"password\": \"12345678\"</p>\n<p>}</p>\n<p><strong>Ejemplo de respuesta (200 OK):</strong></p>\n<p>{</p>\n<p>\"message\": \"Login exitoso\",</p>\n<p>\"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\"</p>\n<p>}</p>\n<p><strong>Notas:</strong></p>\n<ul>\n<li>Copia el token generado y guárdalo en la variable {{token}}.</li>\n</ul>\n","urlObject":{"protocol":"http","port":"8000","path":["auth","login"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"ec06aac4-7826-4ad4-bcea-ed060eb7e167","name":"http://localhost:8000/auth/login","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":" { \r\n     \"email\": \"gemita50@hotmail.com\",\r\n  \"password\": \"12345678\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:8000/auth/login"},"status":"OK","code":200,"_postman_previewlanguage":"JSON","header":[{"key":"X-Powered-By","value":"Express","type":"text"},{"key":"Access-Control-Allow-Origin","value":"http://localhost:5174","type":"text"},{"key":"Vary","value":"Origin","type":"text"},{"key":"Content-Type","value":"application/json; charset=utf-8","type":"text"},{"key":"Content-Length","value":"245","type":"text"},{"key":"ETag","value":"W/\"f5-hT/8nBFm3taJcrXdxx5wMKnDEjQ\"","type":"text"},{"key":"Date","value":"Wed, 15 Oct 2025 10:39:37 GMT","type":"text"},{"key":"Connection","value":"keep-alive","type":"text"},{"key":"Keep-Alive","value":"timeout=5","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Login exitoso\",\n    \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI4IiwiZW1haWwiOiJnZW1pdGE1MEBob3RtYWlsLmNvbSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTc2MDUyNDc3NywiZXhwIjoxNzYxMTI5NTc3fQ.HyGm0jDFUc-wS65PTHc8VRS3evsfg9BJhevL4roQvVI\"\n}"}],"_postman_id":"988201cf-5843-4b73-ad59-6f29920ea1f4"}],"id":"d3a0cb57-0843-432c-9564-3accbe575a2f","description":"<h2 id=\"🔐-endpoints-de-autenticación\">🔐 Endpoints de autenticación</h2>\n<p>Gestiona el <strong>registro</strong>, <strong>inicio de sesión</strong> y <strong>autenticación</strong> de usuarios mediante <strong>JSON Web Tokens (JWT)</strong>.</p>\n<h3 id=\"roles-con-acceso\">Roles con acceso</h3>\n<ul>\n<li><strong>Público:</strong> todos pueden registrarse o iniciar sesión.</li>\n</ul>\n<h3 id=\"detalles\">Detalles</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Método</th>\n<th>Ruta</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>POST</code></td>\n<td><code>/auth/register</code></td>\n<td>Crea un nuevo usuario.</td>\n</tr>\n<tr>\n<td><code>POST</code></td>\n<td><code>/auth/login</code></td>\n<td>Inicia sesión y devuelve un token JWT.</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id></h1>\n","_postman_id":"d3a0cb57-0843-432c-9564-3accbe575a2f","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"b8cdd81a-57ac-4a28-a9cd-fb997d94959b","id":"b8cdd81a-57ac-4a28-a9cd-fb997d94959b","name":"Api Codigo Abisal","type":"collection"}}},{"name":"📰 Artículos","item":[{"name":"http://localhost:8000/article?","id":"98d6eaa4-9774-499e-8505-9b249c89315c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"inherit","inherit":{"basicConfig":[]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8000/article?","description":"<h2 id=\"📚-listar-todos-los-artículos\">📚 Listar todos los artículos</h2>\n<p>Devuelve la lista completa de artículos registrados en la base de datos.</p>\n<p><strong>Acceso:</strong> Público (no requiere autenticación)</p>\n<p><strong>Ejemplo de respuesta (200 OK):</strong></p>\n<p>[</p>\n<p>{</p>\n<p>\"id\": 1,</p>\n<p>\"title\": \"Nueva especie abisal descubierta\",</p>\n<p>\"category\": \"Ecosistemas\",</p>\n<p>\"image\": \"<a href=\"https://null\">https://mi-cdn.com/images/especie.jpg</a>\"</p>\n<p>},</p>\n<p>{</p>\n<p>\"id\": 2,</p>\n<p>\"title\": \"Ecosistema de la fosa de las Marianas\",</p>\n<p>\"category\": \"Ecosistemas\"</p>\n<p>}</p>\n<p>]</p>\n<p>EndFragment</p>\n","urlObject":{"protocol":"http","port":"8000","path":["article"],"host":["localhost"],"query":[{"key":null,"value":null}],"variable":[]}},"response":[{"id":"1b3d2353-8872-484d-883b-08efbd373e7f","name":"http://localhost:8000/article?","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8000/article?","protocol":"http","host":["localhost"],"port":"8000","path":["article"],"query":[{"key":null,"value":null,"sortOrder":0}]}},"status":"OK","code":200,"_postman_previewlanguage":"JSON","header":[{"key":"X-Powered-By","value":"Express","type":"text"},{"key":"Access-Control-Allow-Origin","value":"http://localhost:5174","type":"text"},{"key":"Vary","value":"Origin","type":"text"},{"key":"Content-Type","value":"application/json; charset=utf-8","type":"text"},{"key":"Content-Length","value":"7799","type":"text"},{"key":"ETag","value":"W/\"1e77-TzpPyuDYhCsPlADDWX3IUdSa4k4\"","type":"text"},{"key":"Date","value":"Wed, 15 Oct 2025 10:26:41 GMT","type":"text"},{"key":"Connection","value":"keep-alive","type":"text"},{"key":"Keep-Alive","value":"timeout=5","type":"text"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"id\": 1,\n        \"title\": \"Descubren nueva especie bioluminiscente a 6.800 m de profundidad editado gema\",\n        \"description\": \"Un equipo internacional registra por primera vez un cefalópodo bioluminiscente en la zona abisal del Pacífico.\",\n        \"content\": \"Durante una expedición a la fosa del Pacífico occidental, un ROV equipado con cámaras de alta sensibilidad registró un cefalópodo de tamaño mediano con órganos fotoforos que emiten pulsos de luz azul. El hallazgo se produjo a 6.800 m, en condiciones de presión extrema y ausencia total de luz solar. El equipo documentó patrones de bioluminiscencia posiblemente asociados a comunicación y camuflaje contra predadores. Las muestras de agua circundante sugieren la presencia de compuestos orgánicos relacionados con la producción de luz. Este descubrimiento amplía los límites conocidos de la distribución de cefalópodos bioluminiscentes y plantea nuevas preguntas sobre la adaptación metabólica a la alta presión en la zona abisal. En las próximas semanas, los investigadores analizarán secuencias genéticas para confirmar si se trata de una especie completamente nueva o de una variante de un linaje ya descrito.\",\n        \"category\": \"Ecosistemas\",\n        \"species\": \"Cefalópodo abisal bioluminiscente (posible nuevo género)\",\n        \"image\": \"https://mi-cdn.ejemplo.com/images/cefalopodo-abisal-6800m.jpg\",\n        \"references\": \"Expedición Abisalia 2025; Preprint: doi:10.1234/abyssal.2025.6789; Informe técnico ROV-DeepEye-12\",\n        \"creator_id\": 1,\n        \"created_at\": \"2025-10-07T10:09:53.000Z\",\n        \"updated_at\": \"2025-10-10T15:56:13.000Z\",\n        \"likes\": 0\n    },\n    {\n        \"id\": 2,\n        \"title\": \"Descubren nueva especie bioluminiscente a 6.800 m de profundidad editado version 7\",\n        \"description\": \"Un equipo internacional registra por primera vez un cefalópodo bioluminiscente en la zona abisal del Pacífico.\",\n        \"content\": \"Durante una expedición a la fosa del Pacífico occidental, un ROV equipado con cámaras de alta sensibilidad registró un cefalópodo de tamaño mediano con órganos fotóforos que emiten pulsos de luz azul. El hallazgo se produjo a 6.800 m, en condiciones de presión extrema y ausencia total de luz solar. El equipo documentó patrones de bioluminiscencia posiblemente asociados a comunicación y camuflaje contra predadores. Las muestras de agua circundante sugieren la presencia de compuestos orgánicos relacionados con la producción de luz. Este descubrimiento amplía los límites conocidos de la distribución de cefalópodos bioluminiscentes y plantea nuevas preguntas sobre la adaptación metabólica a la alta presión en la zona abisal. En las próximas semanas, los investigadores analizarán secuencias genéticas para confirmar si se trata de una especie completamente nueva o de una variante de un linaje ya descrito.\",\n        \"category\": \"Ecosistemas\",\n        \"species\": \"Cefalópodo abisal bioluminiscente (posible nuevo género)\",\n        \"image\": \"https://upload.wikimedia.org/wikipedia/commons/4/47/Taonius_pavo1.jpg\",\n        \"references\": \"Expedición Abisalia 2025; Preprint: doi:10.1234/abyssal.2025.6789; Informe técnico ROV-DeepEye-12\",\n        \"creator_id\": 2,\n        \"created_at\": \"2025-10-09T07:30:55.000Z\",\n        \"updated_at\": \"2025-10-14T09:31:08.000Z\",\n        \"likes\": 1\n    },\n    {\n        \"id\": 3,\n        \"title\": \"Descubren nueva especie bioluminiscente a 6.800 m de profundidad estoy en BD local\",\n        \"description\": \"Un equipo internacional registra por primera vez un cefalópodo bioluminiscente en la zona abisal del Pacífico.\",\n        \"content\": \"Durante una expedición a la fosa del Pacífico occidental, un ROV equipado con cámaras de alta sensibilidad registró un cefalópodo de tamaño mediano con órganos fotoforos que emiten pulsos de luz azul. El hallazgo se produjo a 6.800 m, en condiciones de presión extrema y ausencia total de luz solar. El equipo documentó patrones de bioluminiscencia posiblemente asociados a comunicación y camuflaje contra predadores. Las muestras de agua circundante sugieren la presencia de compuestos orgánicos relacionados con la producción de luz. Este descubrimiento amplía los límites conocidos de la distribución de cefalópodos bioluminiscentes y plantea nuevas preguntas sobre la adaptación metabólica a la alta presión en la zona abisal. En las próximas semanas, los investigadores analizarán secuencias genéticas para confirmar si se trata de una especie completamente nueva o de una variante de un linaje ya descrito.\",\n        \"category\": \"Ecosistemas\",\n        \"species\": \"Cefalópodo abisal bioluminiscente (posible nuevo género)\",\n        \"image\": \"https://mi-cdn.ejemplo.com/images/cefalopodo-abisal-6800m.jpg\",\n        \"references\": \"Expedición Abisalia 2025; Preprint: doi:10.1234/abyssal.2025.6789; Informe técnico ROV-DeepEye-12\",\n        \"creator_id\": 2,\n        \"created_at\": \"2025-10-09T10:00:52.000Z\",\n        \"updated_at\": \"2025-10-13T14:36:23.000Z\",\n        \"likes\": 0\n    },\n    {\n        \"id\": 4,\n        \"title\": \"Descubren nueva especie bioluminiscente a 6.800 m de profundidad\",\n        \"description\": \"Un equipo internacional registra por primera vez un cefalópodo bioluminiscente en la zona abisal del Pacífico.\",\n        \"content\": \"Durante una expedición a la fosa del Pacífico occidental, un ROV equipado con cámaras de alta sensibilidad registró un cefalópodo de tamaño mediano con órganos fotoforos que emiten pulsos de luz azul. El hallazgo se produjo a 6.800 m, en condiciones de presión extrema y ausencia total de luz solar. El equipo documentó patrones de bioluminiscencia posiblemente asociados a comunicación y camuflaje contra predadores. Las muestras de agua circundante sugieren la presencia de compuestos orgánicos relacionados con la producción de luz. Este descubrimiento amplía los límites conocidos de la distribución de cefalópodos bioluminiscentes y plantea nuevas preguntas sobre la adaptación metabólica a la alta presión en la zona abisal. En las próximas semanas, los investigadores analizarán secuencias genéticas para confirmar si se trata de una especie completamente nueva o de una variante de un linaje ya descrito.\",\n        \"category\": \"Ecosistemas\",\n        \"species\": \"Cefalópodo abisal bioluminiscente (posible nuevo género)\",\n        \"image\": \"https://mi-cdn.ejemplo.com/images/cefalopodo-abisal-6800m.jpg\",\n        \"references\": \"Expedición Abisalia 2025; Preprint: doi:10.1234/abyssal.2025.6789; Informe técnico ROV-DeepEye-12\",\n        \"creator_id\": 3,\n        \"created_at\": \"2025-10-13T10:10:45.000Z\",\n        \"updated_at\": \"2025-10-13T10:10:45.000Z\",\n        \"likes\": 0\n    },\n    {\n        \"id\": 5,\n        \"title\": \"Descubren nueva especie bioluminiscente a 6.800 m de profundidad\",\n        \"description\": \"Un equipo internacional registra por primera vez un cefalópodo bioluminiscente en la zona abisal del Pacífico.\",\n        \"content\": \"Durante una expedición a la fosa del Pacífico occidental, un ROV equipado con cámaras de alta sensibilidad registró un cefalópodo de tamaño mediano con órganos fotoforos que emiten pulsos de luz azul. El hallazgo se produjo a 6.800 m, en condiciones de presión extrema y ausencia total de luz solar. El equipo documentó patrones de bioluminiscencia posiblemente asociados a comunicación y camuflaje contra predadores. Las muestras de agua circundante sugieren la presencia de compuestos orgánicos relacionados con la producción de luz. Este descubrimiento amplía los límites conocidos de la distribución de cefalópodos bioluminiscentes y plantea nuevas preguntas sobre la adaptación metabólica a la alta presión en la zona abisal. En las próximas semanas, los investigadores analizarán secuencias genéticas para confirmar si se trata de una especie completamente nueva o de una variante de un linaje ya descrito.\",\n        \"category\": \"Ecosistemas\",\n        \"species\": \"Cefalópodo abisal bioluminiscente (posible nuevo género)\",\n        \"image\": \"https://mi-cdn.ejemplo.com/images/cefalopodo-abisal-6800m.jpg\",\n        \"references\": \"Expedición Abisalia 2025; Preprint: doi:10.1234/abyssal.2025.6789; Informe técnico ROV-DeepEye-12\",\n        \"creator_id\": 7,\n        \"created_at\": \"2025-10-15T10:24:35.000Z\",\n        \"updated_at\": \"2025-10-15T10:24:35.000Z\",\n        \"likes\": 0\n    }\n]"}],"_postman_id":"98d6eaa4-9774-499e-8505-9b249c89315c"},{"name":"http://localhost:8000/article/3","id":"871683f0-6c6f-4b4c-a9bb-86e01a7a17d0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"inherit","inherit":{"basicConfig":[]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8000/article/3","description":"<h2 id=\"🔍-obtener-artículo-por-id\">🔍 Obtener artículo por ID</h2>\n<p>Obtiene la información completa de un artículo específico mediante su ID.</p>\n<p><strong>Acceso:</strong> Público<br /><strong>Parámetro:</strong> :id → ID numérico del artículo (por ejemplo, 3)</p>\n<p><strong>Ejemplo de respuesta (200 OK):</strong></p>\n<p>{</p>\n<p>\"id\": 3,</p>\n<p>\"title\": \"Descubren nueva especie bioluminiscente a 6.800 m\",</p>\n<p>\"description\": \"Un equipo internacional registra por primera vez un cefalópodo bioluminiscente...\",</p>\n<p>\"content\": \"Durante una expedición...\",</p>\n<p>\"category\": \"Ecosistemas\",</p>\n<p>\"species\": \"Cefalópodo abisal bioluminiscente\",</p>\n<p>\"image\": \"<a href=\"https://null\">https://mi-cdn.com/images/cefalopodo.jpg</a>\",</p>\n<p>\"creator_id\": 2</p>\n<p>}</p>\n<hr />\n","urlObject":{"protocol":"http","port":"8000","path":["article","3"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"17ec1978-96b3-49c9-9d10-db5ce146e7c9","name":"http://localhost:8000/article/3","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8000/article/3"},"status":"OK","code":200,"_postman_previewlanguage":"JSON","header":[{"key":"X-Powered-By","value":"Express","type":"text"},{"key":"Access-Control-Allow-Origin","value":"http://localhost:5174","type":"text"},{"key":"Vary","value":"Origin","type":"text"},{"key":"Content-Type","value":"application/json; charset=utf-8","type":"text"},{"key":"Content-Length","value":"1565","type":"text"},{"key":"ETag","value":"W/\"61d-RLfKh2BeAUEfYD68+jEvMYR2sVM\"","type":"text"},{"key":"Date","value":"Wed, 15 Oct 2025 10:28:36 GMT","type":"text"},{"key":"Connection","value":"keep-alive","type":"text"},{"key":"Keep-Alive","value":"timeout=5","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 3,\n    \"title\": \"Descubren nueva especie bioluminiscente a 6.800 m de profundidad estoy en BD local\",\n    \"description\": \"Un equipo internacional registra por primera vez un cefalópodo bioluminiscente en la zona abisal del Pacífico.\",\n    \"content\": \"Durante una expedición a la fosa del Pacífico occidental, un ROV equipado con cámaras de alta sensibilidad registró un cefalópodo de tamaño mediano con órganos fotoforos que emiten pulsos de luz azul. El hallazgo se produjo a 6.800 m, en condiciones de presión extrema y ausencia total de luz solar. El equipo documentó patrones de bioluminiscencia posiblemente asociados a comunicación y camuflaje contra predadores. Las muestras de agua circundante sugieren la presencia de compuestos orgánicos relacionados con la producción de luz. Este descubrimiento amplía los límites conocidos de la distribución de cefalópodos bioluminiscentes y plantea nuevas preguntas sobre la adaptación metabólica a la alta presión en la zona abisal. En las próximas semanas, los investigadores analizarán secuencias genéticas para confirmar si se trata de una especie completamente nueva o de una variante de un linaje ya descrito.\",\n    \"category\": \"Ecosistemas\",\n    \"species\": \"Cefalópodo abisal bioluminiscente (posible nuevo género)\",\n    \"image\": \"https://mi-cdn.ejemplo.com/images/cefalopodo-abisal-6800m.jpg\",\n    \"references\": \"Expedición Abisalia 2025; Preprint: doi:10.1234/abyssal.2025.6789; Informe técnico ROV-DeepEye-12\",\n    \"creator_id\": 2,\n    \"created_at\": \"2025-10-09T10:00:52.000Z\",\n    \"updated_at\": \"2025-10-13T14:36:23.000Z\",\n    \"likes\": 0\n}"}],"_postman_id":"871683f0-6c6f-4b4c-a9bb-86e01a7a17d0"},{"name":"http://localhost:8000/article?","id":"ad4fd6dd-33f1-4ea6-a9aa-c7522eaddc69","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"inherit","inherit":{"basicConfig":[]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"title\": \"Descubren nueva especie bioluminiscente a 6.800 m de profundidad\",\r\n  \"description\": \"Un equipo internacional registra por primera vez un cefalópodo bioluminiscente en la zona abisal del Pacífico.\",\r\n  \"content\": \"Durante una expedición a la fosa del Pacífico occidental, un ROV equipado con cámaras de alta sensibilidad registró un cefalópodo de tamaño mediano con órganos fotoforos que emiten pulsos de luz azul. El hallazgo se produjo a 6.800 m, en condiciones de presión extrema y ausencia total de luz solar. El equipo documentó patrones de bioluminiscencia posiblemente asociados a comunicación y camuflaje contra predadores. Las muestras de agua circundante sugieren la presencia de compuestos orgánicos relacionados con la producción de luz. Este descubrimiento amplía los límites conocidos de la distribución de cefalópodos bioluminiscentes y plantea nuevas preguntas sobre la adaptación metabólica a la alta presión en la zona abisal. En las próximas semanas, los investigadores analizarán secuencias genéticas para confirmar si se trata de una especie completamente nueva o de una variante de un linaje ya descrito.\",\r\n  \"category\": \"Ecosistemas\",\r\n  \"species\": \"Cefalópodo abisal bioluminiscente (posible nuevo género)\",\r\n  \"image\": \"https://mi-cdn.ejemplo.com/images/cefalopodo-abisal-6800m.jpg\",\r\n  \"references\": \"Expedición Abisalia 2025; Preprint: doi:10.1234/abyssal.2025.6789; Informe técnico ROV-DeepEye-12\"\r\n  \r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:8000/article?","description":"<h2 id=\"🖋️-crear-nuevo-artículo\">🖋️ Crear nuevo artículo</h2>\n<p>Permite a un usuario autenticado publicar un nuevo artículo científico.</p>\n<p><strong>Acceso:</strong> Requiere token JWT (Bearer {{token}})</p>\n<p><strong>Body (JSON):</strong>  </p>\n<p>{  </p>\n<p>\"title\": \"Nueva especie bioluminiscente a 6.800 m\",  </p>\n<p>\"description\": \"Un equipo internacional la registra por primera vez.\",  </p>\n<p>\"content\": \"Durante una expedición de 2025...\",  </p>\n<p>\"category\": \"Ecosistemas\",  </p>\n<p>\"species\": \"Cefalópodo abisal bioluminiscente\",  </p>\n<p>\"image\": \"<a href=\"https://null\">https://mi-cdn.com/images/cefalopodo.jpg</a>\",  </p>\n<p>\"references\": \"Expedición Abisalia 2025\"  </p>\n<p>}</p>\n<p><strong>Ejemplo de respuesta (201 Created):</strong>  </p>\n<p>{  </p>\n<p>\"message\": \"Artículo creado correctamente\",  </p>\n<p>\"article\": {  </p>\n<p>\"id\": 7,  </p>\n<p>\"title\": \"Nueva especie bioluminiscente a 6.800 m\"  </p>\n<p>}  </p>\n<p>}</p>\n","urlObject":{"protocol":"http","port":"8000","path":["article"],"host":["localhost"],"query":[{"key":null,"value":null}],"variable":[]}},"response":[{"id":"9431b162-e311-4ec7-b1f8-1db4a09ba1fd","name":"http://localhost:8000/article?","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"title\": \"Descubren nueva especie bioluminiscente a 6.800 m de profundidad\",\r\n  \"description\": \"Un equipo internacional registra por primera vez un cefalópodo bioluminiscente en la zona abisal del Pacífico.\",\r\n  \"content\": \"Durante una expedición a la fosa del Pacífico occidental, un ROV equipado con cámaras de alta sensibilidad registró un cefalópodo de tamaño mediano con órganos fotoforos que emiten pulsos de luz azul. El hallazgo se produjo a 6.800 m, en condiciones de presión extrema y ausencia total de luz solar. El equipo documentó patrones de bioluminiscencia posiblemente asociados a comunicación y camuflaje contra predadores. Las muestras de agua circundante sugieren la presencia de compuestos orgánicos relacionados con la producción de luz. Este descubrimiento amplía los límites conocidos de la distribución de cefalópodos bioluminiscentes y plantea nuevas preguntas sobre la adaptación metabólica a la alta presión en la zona abisal. En las próximas semanas, los investigadores analizarán secuencias genéticas para confirmar si se trata de una especie completamente nueva o de una variante de un linaje ya descrito.\",\r\n  \"category\": \"Ecosistemas\",\r\n  \"species\": \"Cefalópodo abisal bioluminiscente (posible nuevo género)\",\r\n  \"image\": \"https://mi-cdn.ejemplo.com/images/cefalopodo-abisal-6800m.jpg\",\r\n  \"references\": \"Expedición Abisalia 2025; Preprint: doi:10.1234/abyssal.2025.6789; Informe técnico ROV-DeepEye-12\"\r\n  \r\n}\r\n","options":{"raw":{"language":"json"}}},"url":{"raw":"http://localhost:8000/article?","protocol":"http","host":["localhost"],"port":"8000","path":["article"],"query":[{"key":null,"value":null,"sortOrder":0}]}},"status":"Created","code":201,"_postman_previewlanguage":"JSON","header":[{"key":"X-Powered-By","value":"Express","type":"text"},{"key":"Access-Control-Allow-Origin","value":"http://localhost:5174","type":"text"},{"key":"Vary","value":"Origin","type":"text"},{"key":"Content-Type","value":"application/json; charset=utf-8","type":"text"},{"key":"Content-Length","value":"1547","type":"text"},{"key":"ETag","value":"W/\"60b-hVvHj9yXxyuMemMMX2lCV1mL74U\"","type":"text"},{"key":"Date","value":"Wed, 15 Oct 2025 10:24:35 GMT","type":"text"},{"key":"Connection","value":"keep-alive","type":"text"},{"key":"Keep-Alive","value":"timeout=5","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"created_at\": \"2025-10-15T10:24:35.611Z\",\n    \"updated_at\": \"2025-10-15T10:24:35.611Z\",\n    \"likes\": 0,\n    \"id\": 5,\n    \"title\": \"Descubren nueva especie bioluminiscente a 6.800 m de profundidad\",\n    \"description\": \"Un equipo internacional registra por primera vez un cefalópodo bioluminiscente en la zona abisal del Pacífico.\",\n    \"content\": \"Durante una expedición a la fosa del Pacífico occidental, un ROV equipado con cámaras de alta sensibilidad registró un cefalópodo de tamaño mediano con órganos fotoforos que emiten pulsos de luz azul. El hallazgo se produjo a 6.800 m, en condiciones de presión extrema y ausencia total de luz solar. El equipo documentó patrones de bioluminiscencia posiblemente asociados a comunicación y camuflaje contra predadores. Las muestras de agua circundante sugieren la presencia de compuestos orgánicos relacionados con la producción de luz. Este descubrimiento amplía los límites conocidos de la distribución de cefalópodos bioluminiscentes y plantea nuevas preguntas sobre la adaptación metabólica a la alta presión en la zona abisal. En las próximas semanas, los investigadores analizarán secuencias genéticas para confirmar si se trata de una especie completamente nueva o de una variante de un linaje ya descrito.\",\n    \"category\": \"Ecosistemas\",\n    \"species\": \"Cefalópodo abisal bioluminiscente (posible nuevo género)\",\n    \"image\": \"https://mi-cdn.ejemplo.com/images/cefalopodo-abisal-6800m.jpg\",\n    \"references\": \"Expedición Abisalia 2025; Preprint: doi:10.1234/abyssal.2025.6789; Informe técnico ROV-DeepEye-12\",\n    \"creator_id\": 7\n}"}],"_postman_id":"ad4fd6dd-33f1-4ea6-a9aa-c7522eaddc69"},{"name":"http://localhost:8000/article/5","id":"3c19bee5-5413-454f-8be2-61f5febe76cc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"inherit","inherit":{"basicConfig":[]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"id\": 5,\r\n    \"title\": \"Descubren nueva especie bioluminiscente a 6.800 m de profundidad. ESTE ARTICULO HA SIDO MODIFICADO\",\r\n    \"description\": \"Un equipo internacional registra por primera vez un cefalópodo bioluminiscente en la zona abisal del Pacífico.\",\r\n    \"content\": \"Durante una expedición a la fosa del Pacífico occidental, un ROV equipado con cámaras de alta sensibilidad registró un cefalópodo de tamaño mediano con órganos fotoforos que emiten pulsos de luz azul. El hallazgo se produjo a 6.800 m, en condiciones de presión extrema y ausencia total de luz solar. El equipo documentó patrones de bioluminiscencia posiblemente asociados a comunicación y camuflaje contra predadores. Las muestras de agua circundante sugieren la presencia de compuestos orgánicos relacionados con la producción de luz. Este descubrimiento amplía los límites conocidos de la distribución de cefalópodos bioluminiscentes y plantea nuevas preguntas sobre la adaptación metabólica a la alta presión en la zona abisal. En las próximas semanas, los investigadores analizarán secuencias genéticas para confirmar si se trata de una especie completamente nueva o de una variante de un linaje ya descrito.\",\r\n    \"category\": \"Ecosistemas\",\r\n    \"species\": \"Cefalópodo abisal bioluminiscente (posible nuevo género)\",\r\n    \"image\": \"https://mi-cdn.ejemplo.com/images/cefalopodo-abisal-6800m.jpg\",\r\n    \"references\": \"Expedición Abisalia 2025; Preprint: doi:10.1234/abyssal.2025.6789; Informe técnico ROV-DeepEye-12\",\r\n    \"creator_id\": 7,\r\n    \"created_at\": \"2025-10-15T10:24:35.000Z\",\r\n    \"updated_at\": \"2025-10-15T10:24:35.000Z\",\r\n    \"likes\": 0\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8000/article/5","description":"<h2 id=\"✏️-actualizar-artículo-existente\">✏️ Actualizar artículo existente</h2>\n<p>Permite modificar uno o varios campos de un artículo existente.</p>\n<p><strong>Acceso:</strong> Solo administradores</p>\n<p><strong>Body (JSON):</strong>  </p>\n<p>{  </p>\n<p>\"title\": \"Nuevo título actualizado\",  </p>\n<p>\"category\": \"Fauna marina\",  </p>\n<p>\"content\": \"Texto actualizado...\"  </p>\n<p>}</p>\n<p><strong>Ejemplo de respuesta (200 OK):</strong>  </p>\n<p>{  </p>\n<p>\"message\": \"Artículo actualizado correctamente\",  </p>\n<p>\"article\": {  </p>\n<p>\"id\": 5,  </p>\n<p>\"title\": \"Nuevo título actualizado\"  </p>\n<p>}  </p>\n<p>}</p>\n","urlObject":{"protocol":"http","port":"8000","path":["article","5"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"e947990b-a0d1-4dca-9545-30560cc49588","name":"http://localhost:8000/article/5","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"id\": 5,\r\n    \"title\": \"Descubren nueva especie bioluminiscente a 6.800 m de profundidad. ESTE ARTICULO HA SIDO MODIFICADO\",\r\n    \"description\": \"Un equipo internacional registra por primera vez un cefalópodo bioluminiscente en la zona abisal del Pacífico.\",\r\n    \"content\": \"Durante una expedición a la fosa del Pacífico occidental, un ROV equipado con cámaras de alta sensibilidad registró un cefalópodo de tamaño mediano con órganos fotoforos que emiten pulsos de luz azul. El hallazgo se produjo a 6.800 m, en condiciones de presión extrema y ausencia total de luz solar. El equipo documentó patrones de bioluminiscencia posiblemente asociados a comunicación y camuflaje contra predadores. Las muestras de agua circundante sugieren la presencia de compuestos orgánicos relacionados con la producción de luz. Este descubrimiento amplía los límites conocidos de la distribución de cefalópodos bioluminiscentes y plantea nuevas preguntas sobre la adaptación metabólica a la alta presión en la zona abisal. En las próximas semanas, los investigadores analizarán secuencias genéticas para confirmar si se trata de una especie completamente nueva o de una variante de un linaje ya descrito.\",\r\n    \"category\": \"Ecosistemas\",\r\n    \"species\": \"Cefalópodo abisal bioluminiscente (posible nuevo género)\",\r\n    \"image\": \"https://mi-cdn.ejemplo.com/images/cefalopodo-abisal-6800m.jpg\",\r\n    \"references\": \"Expedición Abisalia 2025; Preprint: doi:10.1234/abyssal.2025.6789; Informe técnico ROV-DeepEye-12\",\r\n    \"creator_id\": 7,\r\n    \"created_at\": \"2025-10-15T10:24:35.000Z\",\r\n    \"updated_at\": \"2025-10-15T10:24:35.000Z\",\r\n    \"likes\": 0\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8000/article/5"},"status":"OK","code":200,"_postman_previewlanguage":"JSON","header":[{"key":"X-Powered-By","value":"Express","type":"text"},{"key":"Access-Control-Allow-Origin","value":"http://localhost:5174","type":"text"},{"key":"Vary","value":"Origin","type":"text"},{"key":"Content-Type","value":"application/json; charset=utf-8","type":"text"},{"key":"Content-Length","value":"1641","type":"text"},{"key":"ETag","value":"W/\"669-RCw43JCnHzLFDnAdGN1Xvyv9sdw\"","type":"text"},{"key":"Date","value":"Wed, 15 Oct 2025 10:43:16 GMT","type":"text"},{"key":"Connection","value":"keep-alive","type":"text"},{"key":"Keep-Alive","value":"timeout=5","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Artículo actualizado correctamente\",\n    \"article\": {\n        \"id\": 5,\n        \"title\": \"Descubren nueva especie bioluminiscente a 6.800 m de profundidad. ESTE ARTICULO HA SIDO MODIFICADO\",\n        \"description\": \"Un equipo internacional registra por primera vez un cefalópodo bioluminiscente en la zona abisal del Pacífico.\",\n        \"content\": \"Durante una expedición a la fosa del Pacífico occidental, un ROV equipado con cámaras de alta sensibilidad registró un cefalópodo de tamaño mediano con órganos fotoforos que emiten pulsos de luz azul. El hallazgo se produjo a 6.800 m, en condiciones de presión extrema y ausencia total de luz solar. El equipo documentó patrones de bioluminiscencia posiblemente asociados a comunicación y camuflaje contra predadores. Las muestras de agua circundante sugieren la presencia de compuestos orgánicos relacionados con la producción de luz. Este descubrimiento amplía los límites conocidos de la distribución de cefalópodos bioluminiscentes y plantea nuevas preguntas sobre la adaptación metabólica a la alta presión en la zona abisal. En las próximas semanas, los investigadores analizarán secuencias genéticas para confirmar si se trata de una especie completamente nueva o de una variante de un linaje ya descrito.\",\n        \"category\": \"Ecosistemas\",\n        \"species\": \"Cefalópodo abisal bioluminiscente (posible nuevo género)\",\n        \"image\": \"https://mi-cdn.ejemplo.com/images/cefalopodo-abisal-6800m.jpg\",\n        \"references\": \"Expedición Abisalia 2025; Preprint: doi:10.1234/abyssal.2025.6789; Informe técnico ROV-DeepEye-12\",\n        \"creator_id\": 7,\n        \"created_at\": \"2025-10-15T10:24:35.000Z\",\n        \"updated_at\": \"2025-10-15T10:43:16.371Z\",\n        \"likes\": 0\n    }\n}"}],"_postman_id":"3c19bee5-5413-454f-8be2-61f5febe76cc"},{"name":"http://localhost:8000/article/4","id":"8420f7b5-e6a2-46af-8831-59fadccb53ce","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"inherit","inherit":{"basicConfig":[]},"isInherited":false},"method":"DELETE","header":[],"url":"http://localhost:8000/article/4","description":"<h2 id=\"🗑️-eliminar-artículo\">🗑️ Eliminar artículo</h2>\n<p>Elimina un artículo del sistema por su ID.</p>\n<p><strong>Acceso:</strong> Solo administradores</p>\n<p><strong>Ejemplo de respuesta (200 OK):</strong>  </p>\n<p>{  </p>\n<p>\"message\": \"El artículo ha sido eliminado correctamente\"  </p>\n<p>}</p>\n","urlObject":{"protocol":"http","port":"8000","path":["article","4"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"54ceb3eb-d5c9-40d4-b566-75db29515fcc","name":"http://localhost:8000/article/4","originalRequest":{"method":"DELETE","header":[],"url":"http://localhost:8000/article/4"},"status":"OK","code":200,"_postman_previewlanguage":"JSON","header":[{"key":"X-Powered-By","value":"Express","type":"text"},{"key":"Access-Control-Allow-Origin","value":"http://localhost:5174","type":"text"},{"key":"Vary","value":"Origin","type":"text"},{"key":"Content-Type","value":"application/json; charset=utf-8","type":"text"},{"key":"Content-Length","value":"54","type":"text"},{"key":"ETag","value":"W/\"36-6YPH1VpbphFeSYN2BGK+f9VKbU4\"","type":"text"},{"key":"Date","value":"Wed, 15 Oct 2025 10:45:42 GMT","type":"text"},{"key":"Connection","value":"keep-alive","type":"text"},{"key":"Keep-Alive","value":"timeout=5","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"El articulo esta eliminado correctamente\"\n}"}],"_postman_id":"8420f7b5-e6a2-46af-8831-59fadccb53ce"}],"id":"6dd50eaf-9e79-4d4a-a63f-42fbfd063142","description":"<h2 id=\"📰-endpoints-de-artículos\">📰 Endpoints de artículos</h2>\n<p>Gestiona toda la información científica sobre los descubrimientos abisales.</p>\n<h3 id=\"roles-con-acceso\">Roles con acceso</h3>\n<ul>\n<li><p><strong>Público:</strong> puede ver artículos.</p>\n</li>\n<li><p><strong>Usuario registrado:</strong> puede crear artículos.</p>\n</li>\n<li><p><strong>Administrador:</strong> puede editar y eliminar artículos.</p>\n</li>\n</ul>\n<h3 id=\"campos-del-artículo\">Campos del artículo</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Campo</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>Identificador único</td>\n</tr>\n<tr>\n<td>title</td>\n<td>Título del artículo</td>\n</tr>\n<tr>\n<td>description</td>\n<td>Breve resumen</td>\n</tr>\n<tr>\n<td>content</td>\n<td>Contenido completo</td>\n</tr>\n<tr>\n<td>category</td>\n<td>Categoría (Ecosistemas, Especies, etc.)</td>\n</tr>\n<tr>\n<td>species</td>\n<td>Especie o tema</td>\n</tr>\n<tr>\n<td>image</td>\n<td>URL de imagen representativa</td>\n</tr>\n<tr>\n<td>references</td>\n<td>Fuentes o referencias</td>\n</tr>\n<tr>\n<td>creator_id</td>\n<td>ID del autor</td>\n</tr>\n<tr>\n<td>likes</td>\n<td>Número de “me gusta”</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"6dd50eaf-9e79-4d4a-a63f-42fbfd063142","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"b8cdd81a-57ac-4a28-a9cd-fb997d94959b","id":"b8cdd81a-57ac-4a28-a9cd-fb997d94959b","name":"Api Codigo Abisal","type":"collection"}}},{"name":"👥 Usuarios","item":[{"name":"http://localhost:8000/users","id":"c816e07d-d39e-45af-8fef-e5f57d674f31","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"inherit","inherit":{"basicConfig":[]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8000/users","description":"<h2 id=\"👥-listar-todos-los-usuarios\">👥 Listar todos los usuarios</h2>\n<p>Obtiene la lista completa de usuarios registrados en el sistema.</p>\n<p><strong>Acceso:</strong> Solo administradores</p>\n<p><strong>Ejemplo de respuesta (200 OK):</strong>  </p>\n<p>[  </p>\n<p>{  </p>\n<p>\"id\": 1,  </p>\n<p>\"username\": \"Gema284\",  </p>\n<p>\"email\": \"<a href=\"https://null\">gemita50@hotmail.com</a>\",  </p>\n<p>\"role\": \"admin\"  </p>\n<p>},  </p>\n<p>{  </p>\n<p>\"id\": 2,  </p>\n<p>\"username\": \"PabloPerez\",  </p>\n<p>\"email\": \"<a href=\"https://null\">pablo@example.com</a>\",  </p>\n<p>\"role\": \"user\"  </p>\n<p>}  </p>\n<p>]</p>\n","urlObject":{"protocol":"http","port":"8000","path":["users"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"03baa2b2-ddf9-4544-8dd1-71e2987c02ca","name":"http://localhost:8000/users","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8000/users"},"status":"OK","code":200,"_postman_previewlanguage":"JSON","header":[{"key":"X-Powered-By","value":"Express","type":"text"},{"key":"Access-Control-Allow-Origin","value":"http://localhost:5174","type":"text"},{"key":"Vary","value":"Origin","type":"text"},{"key":"Content-Type","value":"application/json; charset=utf-8","type":"text"},{"key":"Content-Length","value":"1540","type":"text"},{"key":"ETag","value":"W/\"604-bIMHB3Vt814ExKUw4jS4VAqAqC0\"","type":"text"},{"key":"Date","value":"Wed, 15 Oct 2025 10:49:50 GMT","type":"text"},{"key":"Connection","value":"keep-alive","type":"text"},{"key":"Keep-Alive","value":"timeout=5","type":"text"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"id\": 1,\n        \"username\": \"Gema284\",\n        \"email\": \"gemita284@hotmail.com\",\n        \"name\": \"Gema\",\n        \"last_name\": \"Yebenes\",\n        \"role\": \"admin\",\n        \"created_at\": \"2025-10-07T10:05:18.000Z\",\n        \"updated_at\": \"2025-10-07T10:05:18.000Z\"\n    },\n    {\n        \"id\": 2,\n        \"username\": \"juan_perez\",\n        \"email\": \"gema@hotmail.com\",\n        \"name\": \"Juan\",\n        \"last_name\": \"Pérez\",\n        \"role\": \"user\",\n        \"created_at\": \"2025-10-09T07:27:42.000Z\",\n        \"updated_at\": \"2025-10-09T07:27:42.000Z\"\n    },\n    {\n        \"id\": 3,\n        \"username\": \"Pepe25\",\n        \"email\": \"pepe25@hotmail.com\",\n        \"name\": \"Pepe\",\n        \"last_name\": \"Pérez\",\n        \"role\": \"user\",\n        \"created_at\": \"2025-10-13T09:58:35.000Z\",\n        \"updated_at\": \"2025-10-13T09:58:35.000Z\"\n    },\n    {\n        \"id\": 4,\n        \"username\": \"Pablo_Perez\",\n        \"email\": \"pablo@hotmail.com\",\n        \"name\": \"Pablo\",\n        \"last_name\": \"Sanchez\",\n        \"role\": \"user\",\n        \"created_at\": \"2025-10-13T10:02:52.000Z\",\n        \"updated_at\": \"2025-10-13T10:02:52.000Z\"\n    },\n    {\n        \"id\": 5,\n        \"username\": \"Manolo_perez\",\n        \"email\": \"manolo@hotmail.com\",\n        \"name\": \"Manolo\",\n        \"last_name\": \"Pérez\",\n        \"role\": \"user\",\n        \"created_at\": \"2025-10-15T06:49:57.000Z\",\n        \"updated_at\": \"2025-10-15T06:49:57.000Z\"\n    },\n    {\n        \"id\": 6,\n        \"username\": \"Pepa_perez\",\n        \"email\": \"pepa@hotmail.com\",\n        \"name\": \"Pepa\",\n        \"last_name\": \"Pérez\",\n        \"role\": \"user\",\n        \"created_at\": \"2025-10-15T06:53:14.000Z\",\n        \"updated_at\": \"2025-10-15T06:53:14.000Z\"\n    },\n    {\n        \"id\": 7,\n        \"username\": \"Gema_Garcia\",\n        \"email\": \"gemagarcia@hotmail.com\",\n        \"name\": \"Gema\",\n        \"last_name\": \"Garcia\",\n        \"role\": \"user\",\n        \"created_at\": \"2025-10-15T10:19:48.000Z\",\n        \"updated_at\": \"2025-10-15T10:19:48.000Z\"\n    },\n    {\n        \"id\": 8,\n        \"username\": \"Gema_Yebenes\",\n        \"email\": \"gemita50@hotmail.com\",\n        \"name\": \"Gema\",\n        \"last_name\": \"Yebenes\",\n        \"role\": \"admin\",\n        \"created_at\": \"2025-10-15T10:35:53.000Z\",\n        \"updated_at\": \"2025-10-15T10:35:53.000Z\"\n    }\n]"}],"_postman_id":"c816e07d-d39e-45af-8fef-e5f57d674f31"},{"name":"http://localhost:8000/users/2","id":"78494f8a-8612-4b44-87fc-5e1b1b068907","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"inherit","inherit":{"basicConfig":[]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8000/users/2","description":"<h2 id=\"🔍-obtener-usuario-por-id\">🔍 Obtener usuario por ID</h2>\n<p>Devuelve los datos públicos de un usuario específico.</p>\n<p><strong>Acceso:</strong> Público</p>\n<p><strong>Ejemplo de respuesta (200 OK):</strong>  </p>\n<p>{  </p>\n<p>\"id\": 2,  </p>\n<p>\"username\": \"PabloPerez\",  </p>\n<p>\"name\": \"Pablo\"  </p>\n<p>}</p>\n<p><strong>Ejemplo de error (404):</strong>  </p>\n<p>{ \"message\": \"Usuario no encontrado\" }</p>\n","urlObject":{"protocol":"http","port":"8000","path":["users","2"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"01f5b7a0-eae0-44ad-8113-b503d351d61d","name":"http://localhost:8000/users/2","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8000/users/2"},"status":"OK","code":200,"_postman_previewlanguage":"JSON","header":[{"key":"X-Powered-By","value":"Express","type":"text"},{"key":"Access-Control-Allow-Origin","value":"http://localhost:5174","type":"text"},{"key":"Vary","value":"Origin","type":"text"},{"key":"Content-Type","value":"application/json; charset=utf-8","type":"text"},{"key":"Content-Length","value":"46","type":"text"},{"key":"ETag","value":"W/\"2e-GzZ9/WIazMlkSGoc4kYFc0uyJYE\"","type":"text"},{"key":"Date","value":"Wed, 15 Oct 2025 11:43:19 GMT","type":"text"},{"key":"Connection","value":"keep-alive","type":"text"},{"key":"Keep-Alive","value":"timeout=5","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 2,\n    \"username\": \"juan_perez\",\n    \"name\": \"Juan\"\n}"}],"_postman_id":"78494f8a-8612-4b44-87fc-5e1b1b068907"},{"name":"http://localhost:8000/users/2","id":"84f7bc79-d1fb-43ac-b8b9-f7dd1dfe0460","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"inherit","inherit":{"basicConfig":[]},"isInherited":false},"method":"DELETE","header":[],"url":"http://localhost:8000/users/2","description":"<h2 id=\"🗑️-eliminar-usuario\">🗑️ Eliminar usuario</h2>\n<p>Elimina un usuario del sistema por su ID.</p>\n<p><strong>Acceso:</strong> Solo administradores</p>\n<p><strong>Ejemplo de respuesta (200 OK):</strong>  </p>\n<p>{  </p>\n<p>\"message\": \"Usuario eliminado correctamente\",  </p>\n<p>\"deletedUserId\": 2,  </p>\n<p>\"deletedUsername\": \"PabloPerez\"  </p>\n<p>}</p>\n","urlObject":{"protocol":"http","port":"8000","path":["users","2"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"c577bc18-5962-443e-90c7-0c7d4f72762a","name":"http://localhost:8000/users/2","originalRequest":{"method":"DELETE","header":[],"url":"http://localhost:8000/users/2"},"status":"OK","code":200,"_postman_previewlanguage":"JSON","header":[{"key":"X-Powered-By","value":"Express","type":"text"},{"key":"Access-Control-Allow-Origin","value":"http://localhost:5174","type":"text"},{"key":"Vary","value":"Origin","type":"text"},{"key":"Content-Type","value":"application/json; charset=utf-8","type":"text"},{"key":"Content-Length","value":"94","type":"text"},{"key":"ETag","value":"W/\"5e-n40KQTDuMiOqUx7U6u/3L5/mJgQ\"","type":"text"},{"key":"Date","value":"Wed, 15 Oct 2025 11:44:56 GMT","type":"text"},{"key":"Connection","value":"keep-alive","type":"text"},{"key":"Keep-Alive","value":"timeout=5","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Usuario eliminado correctamente\",\n    \"deletedUserId\": 2,\n    \"deletedUsername\": \"juan_perez\"\n}"}],"_postman_id":"84f7bc79-d1fb-43ac-b8b9-f7dd1dfe0460"},{"name":"http://localhost:8000/users/4","id":"1437e8cc-a7e1-4b24-a2fd-1ecc6574cff2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"inherit","inherit":{"basicConfig":[]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"id\": 4,\r\n    \"username\": \"Pablo_Perez\",\r\n    \"name\": \"Pablo\",\r\n    \"role\":\"admin\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8000/users/4","description":"<h2 id=\"🧩-actualizar-rol-de-usuario\">🧩 Actualizar rol de usuario</h2>\n<p>Permite cambiar el rol de un usuario en el sistema (por ejemplo, de <strong>user</strong> a <strong>admin</strong>, o al revés).</p>\n<p><strong>Acceso:</strong> Solo administradores<br /><strong>Autenticación:</strong> Requiere token JWT (<code>Bearer {{token}}</code>)</p>\n<p><strong>Parámetro:</strong></p>\n<ul>\n<li><code>:id</code> → ID del usuario cuyo rol quieres modificar.</li>\n</ul>\n<p><strong>Body (JSON):</strong>  </p>\n<p>{  </p>\n<p>\"role\": \"admin\"  </p>\n<p>}</p>\n<p>o bien</p>\n<p>{  </p>\n<p>\"role\": \"user\"  </p>\n<p>}</p>\n<p><strong>Ejemplo de respuesta (200 OK):</strong>  </p>\n<p>{  </p>\n<p>\"message\": \"Rol actualizado correctamente\",  </p>\n<p>\"user\": {  </p>\n<p>\"id\": 4,  </p>\n<p>\"username\": \"Gema_Yebenes\",  </p>\n<p>\"role\": \"admin\"  </p>\n<p>}  </p>\n<p>}</p>\n","urlObject":{"protocol":"http","port":"8000","path":["users","4"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"17eb79fb-4f31-471d-987f-da729bf1bc39","name":"http://localhost:8000/users/4","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"id\": 4,\r\n    \"username\": \"Pablo_Perez\",\r\n    \"name\": \"Pablo\",\r\n    \"role\":\"admin\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8000/users/4"},"status":"OK","code":200,"_postman_previewlanguage":"JSON","header":[{"key":"X-Powered-By","value":"Express","type":"text"},{"key":"Access-Control-Allow-Origin","value":"http://localhost:5174","type":"text"},{"key":"Vary","value":"Origin","type":"text"},{"key":"Content-Type","value":"application/json; charset=utf-8","type":"text"},{"key":"Content-Length","value":"248","type":"text"},{"key":"ETag","value":"W/\"f8-pSxRwlt1k67Ca9Vg4R8UpjYbPc0\"","type":"text"},{"key":"Date","value":"Wed, 15 Oct 2025 12:36:57 GMT","type":"text"},{"key":"Connection","value":"keep-alive","type":"text"},{"key":"Keep-Alive","value":"timeout=5","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Usuario actualizado correctamente\",\n    \"user\": {\n        \"id\": 4,\n        \"username\": \"Pablo_Perez\",\n        \"email\": \"pablo@hotmail.com\",\n        \"name\": \"Pablo\",\n        \"last_name\": \"Sanchez\",\n        \"role\": \"admin\",\n        \"created_at\": \"2025-10-13T10:02:52.000Z\",\n        \"updated_at\": \"2025-10-15T12:36:57.000Z\"\n    }\n}"}],"_postman_id":"1437e8cc-a7e1-4b24-a2fd-1ecc6574cff2"}],"id":"8aa5630f-efb2-483b-b417-51b994600885","description":"<h2 id=\"👥-endpoints-de-gestión-de-usuarios\">👥 Endpoints de gestión de usuarios</h2>\n<p>Permiten listar, ver, actualizar y eliminar usuarios del sistema.<br />Solo los administradores pueden modificar o eliminar usuarios.</p>\n<h3 id=\"roles-con-acceso\">Roles con acceso</h3>\n<ul>\n<li><p><strong>Público:</strong> puede ver datos públicos de usuarios.</p>\n</li>\n<li><p><strong>Administrador:</strong> puede listar, modificar y eliminar usuarios.</p>\n</li>\n</ul>\n<h3 id=\"acciones-principales\">Acciones principales</h3>\n<ul>\n<li><p><code>GET /users</code> → lista todos los usuarios (solo admin)</p>\n</li>\n<li><p><code>GET /users/:id</code> → obtiene datos públicos de un usuario</p>\n</li>\n<li><p><code>PUT /users/:id</code> → actualiza datos de usuario</p>\n</li>\n<li><p><code>PUT /users/:id/role</code> → cambia el rol de usuario</p>\n</li>\n<li><p><code>DELETE /users/:id</code> → elimina usuario</p>\n</li>\n</ul>\n","_postman_id":"8aa5630f-efb2-483b-b417-51b994600885","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"b8cdd81a-57ac-4a28-a9cd-fb997d94959b","id":"b8cdd81a-57ac-4a28-a9cd-fb997d94959b","name":"Api Codigo Abisal","type":"collection"}}}],"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]}},"event":[{"listen":"prerequest","script":{"id":"a0e84958-e0f8-403b-aac7-501594b53b00","type":"text/javascript","packages":{},"requests":{},"exec":[""]}},{"listen":"test","script":{"id":"40324eb7-f627-4348-a434-c19d033a16de","type":"text/javascript","packages":{},"requests":{},"exec":[""]}}]}