{"id":21288731,"url":"https://github.com/alysonsz/library-api","last_synced_at":"2025-03-15T15:42:42.182Z","repository":{"id":254451588,"uuid":"845574933","full_name":"alysonsz/Library-API","owner":"alysonsz","description":"Problem Situation: Traditional library systems struggle with handling multiple book queries efficiently, leading to delays and poor performance. This project improves scalability and responsiveness by using Go routines and channels, enabling real-time book reading simulations and optimizing the management of multiple requests.","archived":false,"fork":false,"pushed_at":"2024-10-24T00:48:23.000Z","size":20,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-22T05:41:23.890Z","etag":null,"topics":["apirest","go","golang","goroutine","goroutines","library","library-api","library-management","library-management-system"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alysonsz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-08-21T14:08:22.000Z","updated_at":"2024-10-24T00:48:26.000Z","dependencies_parsed_at":"2024-11-21T12:39:05.857Z","dependency_job_id":null,"html_url":"https://github.com/alysonsz/Library-API","commit_stats":null,"previous_names":["alysonsz/library-api"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alysonsz%2FLibrary-API","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alysonsz%2FLibrary-API/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alysonsz%2FLibrary-API/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alysonsz%2FLibrary-API/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alysonsz","download_url":"https://codeload.github.com/alysonsz/Library-API/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243753995,"owners_count":20342537,"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","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":["apirest","go","golang","goroutine","goroutines","library","library-api","library-management","library-management-system"],"created_at":"2024-11-21T12:24:11.007Z","updated_at":"2025-03-15T15:42:42.157Z","avatar_url":"https://github.com/alysonsz.png","language":"Go","readme":"\n# LIBRARY-API\n\n## Descrição\nO **LIBRARY-API** é um sistema backend desenvolvido em Go para gerenciar o catálogo de uma livraria. O sistema permite adicionar, atualizar, listar e remover livros do catálogo, com suporte para diferentes informações, como título, autor e gênero. Ele usa uma base de dados SQLite para armazenar os dados e oferece uma API RESTful para interagir com o sistema.\n\n## Funcionalidades\n\n- **Listar Livros**: Exibe todos os livros registrados no sistema.\n- **Adicionar Livros**: Permite o cadastro de novos livros no catálogo.\n- **Atributos do livro**: título, autor, gênero, quantidade de páginas, ano de publicação.\n- **Atualizar Livro**: Permite a modificação dos detalhes de um livro existente.\n- **Remover Livro**: Permite excluir um livro específico do sistema.\n\n## Requisitos\n\n- Go 1.22.5 ou superior\n- SQLite3 para o banco de dados\n\n### Dependências\n\n- `github.com/mattn/go-sqlite3 v1.14.23`\n\n## Como Executar\n\n1. Clone o Repositório:\n    ``` bash\n    git clone https://github.com/alysonsz/library-api.git\n    cd library-api\n    ```\n2. Instale as dependências:\n   ```bash\n   go mod tidy\n   ```\n3. Configurar o Banco de Dados:\nO projeto utiliza o SQLite, então certifique-se de que você tenha o arquivo books.database no diretório correto. Caso ainda não exista, crie-o:\n    ```bash\n    touch books.database\n    ```   \n4. Inicie o servidor:\n   ```bash\n   go run main.go\n   ```\n5. O sistema estará rodando na porta `8080`.\n\n## Endpoints\n\n### Listar Livros\n```http\nGET /books\n```\nRetorna a lista de todos os livros cadastrados.\n\n### Adicionar Livro\n```http\nPOST /books\n```\nCorpo da requisição:\n```json\n{\n  \"title\": \"Nome do Livro\",\n  \"author\": \"Autor do Livro\",\n  \"genre\": \"Gênero\",\n  \"pages\": \"Número de páginas\",\n  \"publicationYear\": \"Ano de publicação\"\n}\n```\n\n### Atualizar Livro\n```http\nPUT /books/{id}\n```\nParâmetro: `id` do livro a ser atualizado.  \nCorpo da requisição:\n```json\n{\n  \"title\": \"Novo Nome\",\n  \"author\": \"Novo Autor\",\n  \"genre\": \"Novo Gênero\",\n  \"pages\": \"Novo número de páginas\",\n  \"publicationYear\": \"Novo ano de publicação\"\n}\n```\n\n### Remover Livro\n```http\nDELETE /books/{id}\n```\nParâmetro: `id` do livro a ser removido.\n\n## Testes\n\nUse o arquivo `test.http` para testar os endpoints da API com exemplos de requisições HTTP.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falysonsz%2Flibrary-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falysonsz%2Flibrary-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falysonsz%2Flibrary-api/lists"}