{"id":20171429,"url":"https://github.com/lagrotagabriel/api-frases","last_synced_at":"2026-05-04T17:35:06.026Z","repository":{"id":129753860,"uuid":"499734334","full_name":"LagrotaGabriel/API-Frases","owner":"LagrotaGabriel","description":"API de envio de frases","archived":false,"fork":false,"pushed_at":"2022-06-07T03:06:28.000Z","size":244,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-03T04:26:49.136Z","etag":null,"topics":["api","java","jpa","junit","maven","mockito","mvc","mvc-architecture","rest-api","restful-api","spring-boot","swagger"],"latest_commit_sha":null,"homepage":"https://api-cadastrofrases.herokuapp.com/swagger-ui.html","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/LagrotaGabriel.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":"2022-06-04T05:29:24.000Z","updated_at":"2022-06-07T13:42:37.000Z","dependencies_parsed_at":"2023-03-30T07:33:10.060Z","dependency_job_id":null,"html_url":"https://github.com/LagrotaGabriel/API-Frases","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/LagrotaGabriel/API-Frases","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LagrotaGabriel%2FAPI-Frases","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LagrotaGabriel%2FAPI-Frases/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LagrotaGabriel%2FAPI-Frases/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LagrotaGabriel%2FAPI-Frases/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LagrotaGabriel","download_url":"https://codeload.github.com/LagrotaGabriel/API-Frases/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LagrotaGabriel%2FAPI-Frases/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32618031,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"ssl_error","status_checked_at":"2026-05-04T10:08:02.005Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["api","java","jpa","junit","maven","mockito","mvc","mvc-architecture","rest-api","restful-api","spring-boot","swagger"],"created_at":"2024-11-14T01:24:43.693Z","updated_at":"2026-05-04T17:35:06.008Z","avatar_url":"https://github.com/LagrotaGabriel.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# API Frases\nAPI Que realiza salvamento e busca de frases em banco de dados\n\n## Tópicos\n\n- [Fluxo](#fluxo)\n- [Funcionalidades](#funcionalidades)\n- [Swagger](#swagger)\n- [End Points](#end-points)\n- [Modelo de JSON](#modelo-de-json)\n- [Testes unitários](#testes-unitários)\n- [Tecnologias utilizadas](#tecnologias-utilizadas)\n- [Acesso ao projeto](#acesso-ao-projeto)\n- [Abrir e rodar o projeto](#abrir-e-rodar-o-projeto)\n- [Desenvolvedor](#desenvolvedor)\n\n## Fluxo\n![](fluxo.png)\n1. O usuário envia uma requisição para a API;\n2. O Controller recebe a requisição;\n3. O Controller irá encaminhar para a camada de serviços, que irá realizar as validações e os processamentos lógicos;\n4. A camada de serviços irá enviar para a camada de acesso de dados, que irá converter os objetos recebidos do tipo \nPhraseDTO em objetos do tipo PhraseEntity para que sejam persistidos ou consultados na camada do banco de dados;\n5. Ao sair da camada de persistência, o objeto é convertido para um objeto do tipo PhraseDTO, e é encaminhado novamente\npara o controller, que irá devolver uma response para o usuário de acordo com o resultado do processamento.\n\n## Funcionalidades\n\n:heavy_check_mark: `Criação e edição de frases:` A API possibilita o cadastro e a edição de frases a nível de banco de\ndados;\n\n:heavy_check_mark: `Busca por frases cadastradas:` A API possibilita a busca de frases cadastradas no banco de dados, tanto\npor id como uma busca geral.\n\n## Swagger\n\n\u003e Para acessar o swagger basta acessar o endpoint /swagger-ui.html\n\n`Tela principal do Swagger`\n![](swaggertela.png)\n\n## End points\n\n\u003e [GET] findAll: api/phrase\u003cbr\u003e\nBusca por todas as operações já realizadas no banco de dados\n\n\u003e [GET] findById: api/phrase/{id}\u003cbr\u003e\nBusca uma operação por id no banco de dados\n\n\u003e [POST] create: api/phrase\u003cbr\u003e\nCria uma nova operação no banco de dados\n \n\u003e[PUT] updateById: api/phrase/{id}\u003cbr\u003e\nAltera uma frase no banco de dados\n\n\u003e[DELETE] deleteById: api/phrase/{id}\u003cbr\u003e\nDeleta uma frase no banco de dados\n\n## Modelo de JSON\n\n:warning: Modelo de JSON para requisição via POST e/ou PUT\n\n```json\n{\n   \"frase\": \"Exemplo de frase\"\n}\n```\n\n## Testes unitários\n\n\u003e Os testes unitários foram concluídos com cobertura de testes de 93% das linhas do projeto\n\n`Relatório de cobertura de testes`\n![](coverage.png)\n\n## Tecnologias Utilizadas\n\n- Java 8\n- Swagger\n- MySql\n- JPA\n- Mockito\n- Insomnia\n- Spring MVC\n- Lombok\n- J Unit\n\n## Acesso ao projeto\nO projeto está disponibilizado para utilização gratuita e ilimitada na url:\u003cbr\u003e\nhttps://api-cadastrofrases.herokuapp.com \u003cbr\u003e\nPodendo ser acessado pelo swagger pela url: \u003cbr\u003e\nhttps://api-cadastrofrases.herokuapp.com/swagger-ui.html\n\n\n## Abrir e rodar o projeto\n1. Para rodar o projeto basta utilizar o git clone com a url:\u003cbr\u003ehttps://github.com/LagrotaGabriel/API-Frases.git\n2. Em seguida, recomenda-se que configure o arquivo `application.properties` com o código abaixo para configuração da persistência do projeto\n   ```java \n   server.port = 8080\n   spring.mvc.pathmatch.matching-strategy=ant-path-matcher\n   spring.datasource.url=jdbc:mysql://localhost:3306/db?useTimezone=true\u0026serverTimezone=UTC\n   spring.datasource.username=root\n   spring.datasource.password=123456\n   spring.jpa.hibernate.ddl-auto=update\n   spring.jpa.show-sql=true\n   spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect\n3. Após configurar o `application.properties`, sugiro que você crie um schema no mysql com o nome db\n4. Execute o código e acesse o projeto rodando em servidor local pela url http://www.localhost:8080\n\n## Desenvolvedor\n[\u003cimg src=\"https://avatars.githubusercontent.com/u/95034068?s=400\u0026u=e6564e30a8bb550bd02aac95951f4e0dff78fc48\u0026v=4\" width=115\u003e\u003cbr\u003e\u003csub\u003eGabriel Lagrota\u003c/sub\u003e](https://github.com/LagrotaGabriel)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flagrotagabriel%2Fapi-frases","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flagrotagabriel%2Fapi-frases","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flagrotagabriel%2Fapi-frases/lists"}