{"id":21409654,"url":"https://github.com/edgar-code-repository/spring-boot-users-rest-api","last_synced_at":"2026-05-17T15:41:52.696Z","repository":{"id":150026307,"uuid":"312628494","full_name":"edgar-code-repository/spring-boot-users-rest-api","owner":"edgar-code-repository","description":"Tarea para entrevista. API para creación de usuarios desarrollada con Java 8, Spring Boot, Gradle, JPA, JWT y Lombok.","archived":false,"fork":false,"pushed_at":"2024-04-04T00:28:40.000Z","size":1998,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-16T17:45:27.949Z","etag":null,"topics":["java","jwt","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/edgar-code-repository.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2020-11-13T16:31:50.000Z","updated_at":"2025-02-14T02:34:17.000Z","dependencies_parsed_at":"2024-04-03T06:26:58.438Z","dependency_job_id":"b9f8777f-a05d-4b75-8dbb-4139b3419e83","html_url":"https://github.com/edgar-code-repository/spring-boot-users-rest-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/edgar-code-repository/spring-boot-users-rest-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edgar-code-repository%2Fspring-boot-users-rest-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edgar-code-repository%2Fspring-boot-users-rest-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edgar-code-repository%2Fspring-boot-users-rest-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edgar-code-repository%2Fspring-boot-users-rest-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edgar-code-repository","download_url":"https://codeload.github.com/edgar-code-repository/spring-boot-users-rest-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edgar-code-repository%2Fspring-boot-users-rest-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278245369,"owners_count":25955013,"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-03T02:00:06.070Z","response_time":53,"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":["java","jwt","spring-boot"],"created_at":"2024-11-22T17:27:58.188Z","updated_at":"2025-10-03T23:41:25.745Z","avatar_url":"https://github.com/edgar-code-repository.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"API REST PARA CREACION DE USUARIOS\n-----------------------------------------------------------------------------------\n\nAPI desarrollada con **Java 8, Spring Boot, Gradle, JPA y JWT**.\n\nLa aplicación utiliza una base de datos en memoria (H2) para almacenar usuarios.\n\nSe agrega dependencia **Swagger** para generar documentación de forma automática.\n\nSe agrega librería **Lombok** para facilitar manejo de getters, setters y constructors.\n\nSe agrega librería **ModelMapper** para facilitar el mapeo de instancias model a DTO y\nviceversa.\n\n-----------------------------------------------------------------------------------\n\n**Diagrama de la solución implementada**\n\n![Screenshot Diagrama](screenshots/API_Rest_de_Usuarios_Diagrama_de_la_solucion.png)\n\n-----------------------------------------------------------------------------------\n\n**Documentación de la API generada con Swagger**\n\n![Screenshot Swagger](screenshots/swagger.png)\n\n-----------------------------------------------------------------------------------\n\n**Dependencias utilizadas en archivo build.gradle**\n\n```\n  implementation 'org.springframework.boot:spring-boot-starter-data-jpa'\n  implementation 'org.springframework.boot:spring-boot-starter-web'\n\t\n  implementation 'io.jsonwebtoken:jjwt-api:0.11.2'\n  implementation 'io.jsonwebtoken:jjwt-impl:0.11.2'\n  implementation 'io.jsonwebtoken:jjwt-gson:0.11.2'\n    \t\n  implementation 'io.springfox:springfox-boot-starter:3.0.0'\n\n  implementation 'org.modelmapper:modelmapper:2.1.1'\n\n  compileOnly 'org.projectlombok:lombok:1.18.20'\n  annotationProcessor 'org.projectlombok:lombok:1.18.20'\n    \t\n  runtimeOnly 'com.h2database:h2'\n```\n\n**Se configura base de datos H2 y se habilita consola de H2 en archivo application.properties**\n\n```\n  spring.datasource.url=jdbc:h2:mem:testdb\n  spring.datasource.driverClassName=org.h2.Driver\n  spring.datasource.username=sa\n  spring.datasource.password=password\n  spring.jpa.database-platform=org.hibernate.dialect.H2Dialect\n\n  spring.h2.console.enabled=true\n  spring.h2.console.path=/h2-console\n  spring.h2.console.settings.trace=false\n```\n\n-----------------------------------------------------------------------------------\n\n**Endpoint para creación de un nuevo usuario**\n\nSe envía un HTTP POST a la API REST que se levanta en el puerto 8801.\n\nCuando la creación del usuario es exitosa se arroja mensaje indicando esto junto \ncon una respuesta HTTP 201. Además el retorno muestra el id del usuario en\nformato UUID y el token con formato JWT:\n\n![Screenshot HTTP_POST](screenshots/post.png)\n\n-----------------------------------------------------------------------------------\n\n**Querys en H2 Console**\n\n![Screenshot QUERYS](screenshots/h2-console.png)\n\n-----------------------------------------------------------------------------------\n\n**Endpoint para listar usuarios**\n\nSe envía una petición HTTP GET al endpoint de usuarios:\n\n![Screenshot_GET](screenshots/get.png)\n\n-----------------------------------------------------------------------------------\n\n**Endpoint para recuperar un usuario en particular**\n\nSe envía una petición HTTP GET al endpoint de usuarios, enviando el id del usuario en la URL:\n\n![Screenshot GET_BY_ID](screenshots/get_by_id.png)\n\n-----------------------------------------------------------------------------------\n\n**Endpoint para actualizar los datos de un usuario**\n\nSe envía una petición HTTP PUT al endpoint de usuarios, enviando el id del usuario en la URL:\n\n![Screenshot PUT](screenshots/put.png)\n\n-----------------------------------------------------------------------------------\n\n**Endpoint para eliminar un usuario**\n\nSe envía una petición HTTP DELETE al endpoint de usuarios, enviando el id del usuario en la URL:\n\n![Screenshot DELETE](screenshots/delete.png)\n\n-----------------------------------------------------------------------------------","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedgar-code-repository%2Fspring-boot-users-rest-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedgar-code-repository%2Fspring-boot-users-rest-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedgar-code-repository%2Fspring-boot-users-rest-api/lists"}