{"id":15445405,"url":"https://github.com/bgmp/library","last_synced_at":"2026-04-18T06:37:03.003Z","repository":{"id":200538745,"uuid":"705492690","full_name":"BGMP/Library","owner":"BGMP","description":"Prueba Técnica SCD","archived":false,"fork":false,"pushed_at":"2023-10-16T22:15:54.000Z","size":74,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-28T08:33:09.558Z","etag":null,"topics":["h2","hibernate","java","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/BGMP.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}},"created_at":"2023-10-16T05:51:53.000Z","updated_at":"2023-10-16T15:12:03.000Z","dependencies_parsed_at":"2023-10-17T06:52:04.073Z","dependency_job_id":null,"html_url":"https://github.com/BGMP/Library","commit_stats":null,"previous_names":["bgmp/library"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BGMP/Library","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BGMP%2FLibrary","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BGMP%2FLibrary/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BGMP%2FLibrary/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BGMP%2FLibrary/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BGMP","download_url":"https://codeload.github.com/BGMP/Library/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BGMP%2FLibrary/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31959881,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"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":["h2","hibernate","java","maven","spring-boot"],"created_at":"2024-10-01T19:44:51.358Z","updated_at":"2026-04-18T06:37:02.967Z","avatar_url":"https://github.com/BGMP.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1\u003eLibrary\u003c/h1\u003e\n\u003ch2\u003eImplementación\u003c/h2\u003e\n\u003cp\u003e\n  Esta aplicación de Java Spring Boot fue escrita como resolución a la prueba técnica para desarrolladores planteada\n  por la Sociedad Chilena de Autores e Intérpretes Musicales (SCD).\n\u003c/p\u003e\n\u003cp\u003e\n  La base de datos utilizada fue \u003cb\u003eH2\u003c/b\u003e (volátil), y las entidades creadas para efectos de esta prueba fueron las siguientes:\n\u003c/p\u003e\n\n\u003cul\u003e\n    \u003cli\u003e\u003cb\u003eAuthor\u003c/b\u003e: Representa autores, los cuales pueden estar relacionados con muchos libros distintos.\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eBook\u003c/b\u003e: Representa libros, los cuales sólo pueden estar relacionados con 1 autor.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ctable\u003e\n    \u003cthead\u003e\n    \u003ctr\u003e\n        \u003cth colspan=\"3\"\u003eAuthor\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003cb\u003eAtributo\u003c/b\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cb\u003eTipo\u003c/b\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cb\u003eDefault\u003c/b\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eid\u003c/td\u003e\n        \u003ctd\u003eLong\u003c/td\u003e\n        \u003ctd\u003ePK autonicremental\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003ename\u003c/td\u003e\n        \u003ctd\u003eString (255)\u003c/td\u003e\n        \u003ctd\u003eREQUERIDO\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003elast_name\u003c/td\u003e\n        \u003ctd\u003eString (255)\u003c/td\u003e\n        \u003ctd\u003eREQUERIDO\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003ebooks\u003c/td\u003e\n        \u003ctd\u003eSet\u0026lt;Book\u0026gt;\u003c/td\u003e\n        \u003ctd\u003enew HashSet\u003c\u003e()\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003cbr/\u003e\n\n\u003ctable\u003e\n    \u003cthead\u003e\n    \u003ctr\u003e\n        \u003cth colspan=\"3\"\u003eBook\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003cb\u003eAtributo\u003c/b\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cb\u003eTipo\u003c/b\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cb\u003eDefault\u003c/b\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eid\u003c/td\u003e\n        \u003ctd\u003eLong\u003c/td\u003e\n        \u003ctd\u003ePK autonicremental\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003etitle\u003c/td\u003e\n        \u003ctd\u003eString (255)\u003c/td\u003e\n        \u003ctd\u003eREQUERIDO\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003epublication_date\u003c/td\u003e\n        \u003ctd\u003eDate (dd-MM-yyyy)\u003c/td\u003e\n        \u003ctd\u003eREQUERIDO\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003epages\u003c/td\u003e\n        \u003ctd\u003eInteger\u003c/td\u003e\n        \u003ctd\u003eREQUERIDO\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eprice\u003c/td\u003e\n        \u003ctd\u003eFloat\u003c/td\u003e\n        \u003ctd\u003eREQUERIDO\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003ehardcover\u003c/td\u003e\n        \u003ctd\u003eBoolean\u003c/td\u003e\n        \u003ctd\u003efalse\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eauthor\u003c/td\u003e\n        \u003ctd\u003eAuthor\u003c/td\u003e\n        \u003ctd\u003eREQUERIDO\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003ch2\u003eServicios REST\u003c/h2\u003e\n\n\u003cp\u003eLa API fue diseñada para mantener actualizados los autores con sus libros correspondientes. Al eliminarse un\n    autor con libros asociados, la eliminación es en cascada. Esto quiere decir que los libros asociados al autor\n    eliminado también son eliminados de la base de datos.\n\u003c/p\u003e\n\u003cp\u003eA continuación, se detallan ejemplos de cómo interactuar con la API implementada en sus diferentes endpoints:\u003c/p\u003e\n\n\u003ch3\u003eAuthor\u003c/h3\u003e\n\n\u003cp\u003eCrear (POST \u003ccode\u003ehttp://localhost:8080/api/v1/authors\u003c/code\u003e)\u003c/p\u003e\n\u003cpre\u003e\n{\n    \"name\": \"Miguel\",\n    \"lastName\": \"de Cervantes\"\n}\n\u003c/pre\u003e\n\u003cp\u003eLeer todos (GET \u003ccode\u003ehttp://localhost:8080/api/v1/authors\u003c/code\u003e)\u003c/p\u003e\n\u003cp\u003eLeer uno (GET \u003ccode\u003ehttp://localhost:8080/api/v1/authors/1\u003c/code\u003e)\u003c/p\u003e\n\u003cp\u003eEliminar (DELETE \u003ccode\u003ehttp://localhost:8080/api/v1/authors/1\u003c/code\u003e)\u003c/p\u003e\n\u003cp\u003eActualizar (PUT \u003ccode\u003ehttp://localhost:8080/api/v1/authors/1\u003c/code\u003e)\u003c/p\u003e\n\u003cpre\u003e\n{\n    \"name\": \"Julio\",\n    \"lastName\": \"Verne\"\n}\n\u003c/pre\u003e\n\n\u003ch3\u003eBook\u003c/h3\u003e\n\n\u003cp\u003eCrear (POST \u003ccode\u003ehttp://localhost:8080/api/v1/books)\u003c/code\u003e\u003c/p\u003e\n\u003cpre\u003e\n{\n    \"title\": \"El Quijote\",\n    \"publicationDate\": \"01-01-1605\",\n    \"pages\": 1560,\n    \"price\": 16.99,\n    \"hardcover\": true,\n    \"author\": {\n        \"id\": 1\n    }\n}\n\u003c/pre\u003e\n\u003cp\u003eLeer todos (GET \u003ccode\u003ehttp://localhost:8080/api/v1/books)\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eLeer uno (GET \u003ccode\u003ehttp://localhost:8080/api/v1/books/1)\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eEliminar (DELETE \u003ccode\u003ehttp://localhost:8080/api/v1/books/1)\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eActualizar (PUT \u003ccode\u003ehttp://localhost:8080/api/v1/books/1)\u003c/code\u003e\u003c/p\u003e\n\u003cpre\u003e\n{\n    \"title\": \"El Quijote\",\n    \"publicationDate\": \"01-01-1605\",\n    \"pages\": 1560,\n    \"price\": 40.99,\n    \"hardcover\": false,\n    \"author\": {\n        \"id\": 1\n    }\n}\n\u003c/pre\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbgmp%2Flibrary","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbgmp%2Flibrary","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbgmp%2Flibrary/lists"}