{"id":31916846,"url":"https://github.com/devlucho/ai-generated-microservice-model","last_synced_at":"2026-05-06T00:34:23.045Z","repository":{"id":318714311,"uuid":"1071961409","full_name":"DevLucho/ai-generated-microservice-model","owner":"DevLucho","description":"This project was generated using AI agents based on the Claude Sonnet 4 model.","archived":false,"fork":false,"pushed_at":"2025-10-11T01:49:33.000Z","size":111,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-11T03:03:20.058Z","etag":null,"topics":["java17","maven","spring-boot"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DevLucho.png","metadata":{"files":{"readme":"README-SWAGGER.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-08T04:17:29.000Z","updated_at":"2025-10-11T01:49:37.000Z","dependencies_parsed_at":"2025-10-11T03:03:27.005Z","dependency_job_id":"37cfaff3-6dec-4057-a8ee-1f29698f5f34","html_url":"https://github.com/DevLucho/ai-generated-microservice-model","commit_stats":null,"previous_names":["devlucho/ai-generated-microservice-model"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/DevLucho/ai-generated-microservice-model","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevLucho%2Fai-generated-microservice-model","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevLucho%2Fai-generated-microservice-model/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevLucho%2Fai-generated-microservice-model/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevLucho%2Fai-generated-microservice-model/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DevLucho","download_url":"https://codeload.github.com/DevLucho/ai-generated-microservice-model/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevLucho%2Fai-generated-microservice-model/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279016939,"owners_count":26085906,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java17","maven","spring-boot"],"created_at":"2025-10-13T20:14:28.826Z","updated_at":"2025-10-13T20:14:31.494Z","avatar_url":"https://github.com/DevLucho.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🔒 techcorp - Servicio de Gestión de Usuarios con Swagger/OpenAPI\n\nEste proyecto implementa un servicio completo de autenticación y gestión de usuarios para techcorp con documentación API integral usando Swagger/OpenAPI 3.0.\n\n## 📋 Tabla de Contenidos\n\n- [Características](#características)\n- [Tecnologías](#tecnologías)\n- [Arquitectura](#arquitectura)\n- [Documentación API](#documentación-api)\n- [Instalación](#instalación)\n- [Configuración](#configuración)\n- [Endpoints API](#endpoints-api)\n- [Swagger UI](#swagger-ui)\n- [Seguridad](#seguridad)\n- [Ejemplos de Uso](#ejemplos-de-uso)\n\n## ✨ Características\n\n### 🎯 Funcionalidades Core\n- ✅ Registro de usuarios con validación completa\n- ✅ Autenticación JWT con tokens seguros\n- ✅ Gestión de sesiones de usuario\n- ✅ Operaciones CRUD de usuarios\n- ✅ Health checks y monitoreo del sistema\n- ✅ Manejo global de errores estandarizado\n\n### 📖 Documentación API\n- ✅ Swagger UI interactivo completamente funcional\n- ✅ Documentación OpenAPI 3.0 completa\n- ✅ Ejemplos de request/response en cada endpoint\n- ✅ Esquemas de validación documentados\n- ✅ Seguridad JWT documentada\n- ✅ Tags organizados por funcionalidad\n- ✅ Respuestas de error detalladas\n\n## 🛠️ Tecnologías\n\n- **Java 17** - Lenguaje de programación (LTS)\n- **Spring Boot 3.2.0** - Framework principal\n- **Spring Security** - Seguridad y autenticación\n- **JWT (jsonwebtoken)** - Tokens de autenticación\n- **SpringDoc OpenAPI 3** - Documentación Swagger\n- **Maven** - Gestión de dependencias\n- **Tomcat** - Servidor web embebido\n\n## 🏗️ Arquitectura\n\n```\nsrc/main/java/com/techcorp/authapp/\n├── config/\n│   ├── SwaggerConfiguration.java      # Configuración completa de OpenAPI\n│   ├── SecurityConfiguration.java    # Configuración de seguridad\n│   └── GlobalExceptionHandler.java   # Manejo global de errores\n├── controller/\n│   ├── UserAuthenticationController.java  # Endpoints de autenticación\n│   ├── UserManagementController.java     # Endpoints de gestión\n│   └── SystemController.java             # Endpoints de sistema\n├── dto/\n│   ├── ApiResponseDto.java               # DTO de respuesta estándar\n│   ├── LoginRequestDto.java              # DTO de login\n│   ├── UserRegistrationDto.java          # DTO de registro\n│   └── ErrorResponseDto.java             # DTO de errores\n├── model/\n│   └── SystemUser.java                   # Modelo de usuario\n├── repository/\n│   └── InMemoryUserRepository.java       # Repositorio en memoria\n├── service/\n│   ├── AuthenticationService.java        # Lógica de autenticación\n│   └── TokenGenerationService.java       # Generación de tokens\n└── UserManagementApplication.java        # Clase principal\n```\n\n## 📖 Documentación API\n\n### 🎯 Accesos Rápidos\n\n| Recurso | URL | Descripción |\n|---------|-----|-------------|\n| **Swagger UI** | `http://localhost:8081/swagger-ui.html` | Interfaz interactiva de la API |\n| **OpenAPI JSON** | `http://localhost:8081/api-docs` | Especificación OpenAPI en formato JSON |\n| **Health Check** | `http://localhost:8081/api/system/health` | Estado del servicio |\n\n### 🏷️ Tags de la API\n\n1. **Autenticación** - Operaciones de login, registro y logout\n2. **Gestión de Usuarios** - CRUD y administración de usuarios\n3. **Sistema** - Health checks, información y estadísticas\n\n### 🔐 Esquema de Seguridad\n\nLa API implementa autenticación JWT con el esquema:\n```yaml\nsecuritySchemes:\n  Bearer Authentication:\n    type: http\n    scheme: bearer\n    bearerFormat: JWT\n```\n\n## 🚀 Instalación\n\n### Prerrequisitos\n- Java 17+ instalado\n- Maven 3.6+ instalado\n- Puerto 8081 disponible\n\n### Pasos de Instalación\n\n1. **Clonar el repositorio**\n```bash\ngit clone \u003crepository-url\u003e\ncd techcorp-GHC-2\n```\n\n2. **Compilar el proyecto**\n```bash\nmvn clean compile\n```\n\n3. **Ejecutar la aplicación**\n```bash\nmvn spring-boot:run\n```\n\n4. **Verificar la instalación**\n```bash\ncurl http://localhost:8081/api/system/health\n```\n\n## ⚙️ Configuración\n\n### `application.properties`\n\n```properties\n# Configuración del servidor\nserver.port=8081\nserver.servlet.context-path=/\n\n# Información de la aplicación\nspring.application.name=user-management-service\napp.version=1.0.0\n\n# Configuración de Swagger/OpenAPI\nspringdoc.swagger-ui.path=/swagger-ui.html\nspringdoc.api-docs.path=/api-docs\nspringdoc.swagger-ui.operationsSorter=method\nspringdoc.swagger-ui.tagsSorter=alpha\n\n# Configuración JWT\napp.jwt.secret=techcorp-secret-key-for-development-only\napp.jwt.expiration=86400\n```\n\n### Personalización de Swagger\n\nLa configuración de Swagger incluye:\n- **Información de la API**: Título, descripción, versión, contacto\n- **Servidores**: Desarrollo, Testing, Producción\n- **Seguridad**: Esquema JWT Bearer\n- **Tags**: Organización por funcionalidad\n- **Ejemplos**: Request/Response completos\n\n## 🛡️ Endpoints API\n\n### 🔐 Autenticación (`/api/auth`)\n\n| Método | Endpoint | Descripción | Autenticación |\n|--------|----------|-------------|---------------|\n| `POST` | `/register` | Registrar nuevo usuario | ❌ No |\n| `POST` | `/login` | Autenticar usuario | ❌ No |\n| `POST` | `/logout` | Cerrar sesión | ❌ No |\n\n### 👥 Gestión de Usuarios (`/api/users`)\n\n| Método | Endpoint | Descripción | Autenticación |\n|--------|----------|-------------|---------------|\n| `GET` | `/` | Listar todos los usuarios | ✅ JWT |\n| `GET` | `/{username}` | Obtener usuario específico | ✅ JWT |\n| `PUT` | `/{username}/deactivate` | Desactivar usuario | ✅ JWT |\n\n### 🏥 Sistema (`/api/system`)\n\n| Método | Endpoint | Descripción | Autenticación |\n|--------|----------|-------------|---------------|\n| `GET` | `/health` | Health check del servicio | ❌ No |\n| `GET` | `/info` | Información del sistema | ❌ No |\n| `GET` | `/stats` | Estadísticas de usuarios | ❌ No |\n| `GET` | `/version` | Versión de la API | ❌ No |\n\n## 🎨 Swagger UI\n\n### Características de la Interfaz\n\n- **🎯 Navegación intuitiva** con tags organizados\n- **📝 Documentación completa** de cada endpoint\n- **🧪 Testing interactivo** con formularios\n- **📊 Ejemplos en vivo** de requests y responses\n- **🔒 Autenticación JWT** integrada\n- **📱 Responsive design** para móviles\n- **🎨 Tema techcorp personalizado**\n\n### Ejemplos de Uso en Swagger UI\n\n1. **Registrar Usuario**\n   - Navegar a `Autenticación \u003e POST /api/auth/register`\n   - Usar el ejemplo pre-cargado o personalizar\n   - Ejecutar y ver la respuesta\n\n2. **Autenticarse**\n   - Usar `POST /api/auth/login` con las credenciales\n   - Copiar el token de la respuesta\n   - Usar el botón \"Authorize\" para configurar JWT\n\n3. **Explorar Usuarios**\n   - Con JWT configurado, probar `GET /api/users`\n   - Ver la lista completa de usuarios\n\n## 🔒 Seguridad\n\n### Implementación JWT\n\n```java\n// Ejemplo de token JWT generado\n{\n  \"username\": \"juan.perez\",\n  \"authToken\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n  \"tokenType\": \"Bearer\"\n}\n```\n\n### Headers de Seguridad\n\n```http\nAuthorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\nContent-Type: application/json\n```\n\n## 📋 Ejemplos de Uso\n\n### 1. Registro de Usuario\n\n```bash\ncurl -X POST \"http://localhost:8081/api/auth/register\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"username\": \"juan.perez\",\n    \"password\": \"password123\",\n    \"emailAddress\": \"juan.perez@techcorp.com\"\n  }'\n```\n\n**Respuesta:**\n```json\n{\n  \"success\": true,\n  \"message\": \"User registered successfully\",\n  \"data\": {\n    \"userId\": \"USR-12345\",\n    \"username\": \"juan.perez\",\n    \"emailAddress\": \"juan.perez@techcorp.com\",\n    \"registrationDate\": \"2024-01-15T10:30:00Z\"\n  },\n  \"timestamp\": \"2024-01-15T10:30:00Z\"\n}\n```\n\n### 2. Autenticación\n\n```bash\ncurl -X POST \"http://localhost:8081/api/auth/login\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"username\": \"juan.perez\",\n    \"password\": \"password123\"\n  }'\n```\n\n**Respuesta:**\n```json\n{\n  \"success\": true,\n  \"message\": \"Login successful\",\n  \"data\": {\n    \"username\": \"juan.perez\",\n    \"authToken\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n    \"tokenType\": \"Bearer\"\n  },\n  \"timestamp\": \"2024-01-15T10:31:00Z\"\n}\n```\n\n### 3. Listar Usuarios (con JWT)\n\n```bash\ncurl -X GET \"http://localhost:8081/api/users\" \\\n  -H \"Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\"\n```\n\n### 4. Health Check\n\n```bash\ncurl -X GET \"http://localhost:8081/api/system/health\"\n```\n\n**Respuesta:**\n```json\n{\n  \"success\": true,\n  \"message\": \"Service is healthy and running\",\n  \"data\": {\n    \"status\": \"UP\",\n    \"service\": \"user-management-service\",\n    \"version\": \"1.0.0\",\n    \"timestamp\": \"2024-01-15T12:00:00\"\n  },\n  \"timestamp\": \"2024-01-15T12:00:00Z\"\n}\n```\n\n## 🎯 Características Avanzadas de Swagger\n\n### 1. Validaciones Documentadas\n- **Campos requeridos** claramente marcados\n- **Formatos específicos** (email, password)\n- **Rangos de longitud** para strings\n- **Patrones de validación** documentados\n\n### 2. Respuestas de Error Estructuradas\n```json\n{\n  \"statusCode\": 400,\n  \"error\": \"Validation Failed\",\n  \"message\": \"Username must be between 3 and 50 characters\",\n  \"path\": \"/api/auth/register\",\n  \"timestamp\": \"2024-01-15T10:30:00\",\n  \"errorId\": \"ERR-20240115-001\"\n}\n```\n\n### 3. Ejemplos Interactivos\n- **Datos de prueba** pre-cargados\n- **Múltiples escenarios** de uso\n- **Respuestas de éxito y error**\n\n### 4. Documentación de Modelos\n- **Esquemas JSON** completos\n- **Descripciones detalladas** de cada campo\n- **Ejemplos de valores** esperados\n\n## 🔧 Desarrollo y Contribución\n\n### Estructura de Anotaciones Swagger\n\n```java\n@Operation(\n    summary = \"Breve descripción\",\n    description = \"Descripción detallada del endpoint\",\n    tags = {\"Categoría\"}\n)\n@ApiResponses(value = {\n    @ApiResponse(responseCode = \"200\", description = \"Éxito\",\n        content = @Content(schema = @Schema(implementation = ApiResponseDto.class))),\n    @ApiResponse(responseCode = \"400\", description = \"Error de validación\")\n})\n```\n\n### Mejores Prácticas Implementadas\n\n1. **📝 Documentación Completa**: Cada endpoint tiene descripción detallada\n2. **🏷️ Organización por Tags**: Agrupación lógica de endpoints\n3. **🔒 Seguridad Integrada**: JWT documentado y funcional\n4. **📊 Ejemplos Realistas**: Datos de ejemplo representativos\n5. **🎯 Validaciones Claras**: Reglas de negocio documentadas\n6. **🚨 Manejo de Errores**: Respuestas de error estandarizadas\n\n## 📞 Soporte y Contacto\n\n- **Email**: desarrollo@techcorp.com\n- **Equipo**: Desarrollo techcorp\n- **Documentación**: Disponible en Swagger UI\n- **Versión**: 1.0.0\n\n---\n\n## 🎉 ¡Implementación Completa!\n\n✅ **Swagger UI funcionando completamente**  \n✅ **Documentación OpenAPI 3.0 completa**  \n✅ **Seguridad JWT integrada**  \n✅ **Ejemplos interactivos funcionales**  \n✅ **Cumple con estándares techcorp**  \n\n**Accede a la documentación en:** `http://localhost:8081/swagger-ui.html`","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevlucho%2Fai-generated-microservice-model","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevlucho%2Fai-generated-microservice-model","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevlucho%2Fai-generated-microservice-model/lists"}