{"id":27872972,"url":"https://github.com/augustoarraes/crud_fullstack_react_fastapi","last_synced_at":"2025-08-12T16:41:04.819Z","repository":{"id":233966843,"uuid":"788098052","full_name":"augustoarraes/crud_fullstack_react_fastapi","owner":"augustoarraes","description":"FullStack APP Microsserviço CRUD em FastAPI Python e React JS","archived":false,"fork":false,"pushed_at":"2025-05-02T02:25:19.000Z","size":205,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-05T01:02:11.721Z","etag":null,"topics":["api-rest","crud","crud-api","crud-application","crud-sample","css3","docker","fastapi","html5","javascipt","postgresql","python","react","reactjs","restful-api","sql"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/augustoarraes.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,"zenodo":null}},"created_at":"2024-04-17T19:14:03.000Z","updated_at":"2025-05-02T02:25:22.000Z","dependencies_parsed_at":"2024-04-17T20:48:54.392Z","dependency_job_id":"17d11eb2-34a4-448b-992e-3aedacd7f27d","html_url":"https://github.com/augustoarraes/crud_fullstack_react_fastapi","commit_stats":null,"previous_names":["augustoarraes/fastapi_crud"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/augustoarraes/crud_fullstack_react_fastapi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/augustoarraes%2Fcrud_fullstack_react_fastapi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/augustoarraes%2Fcrud_fullstack_react_fastapi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/augustoarraes%2Fcrud_fullstack_react_fastapi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/augustoarraes%2Fcrud_fullstack_react_fastapi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/augustoarraes","download_url":"https://codeload.github.com/augustoarraes/crud_fullstack_react_fastapi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/augustoarraes%2Fcrud_fullstack_react_fastapi/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270099403,"owners_count":24527028,"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-08-12T02:00:09.011Z","response_time":80,"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":["api-rest","crud","crud-api","crud-application","crud-sample","css3","docker","fastapi","html5","javascipt","postgresql","python","react","reactjs","restful-api","sql"],"created_at":"2025-05-05T01:02:03.182Z","updated_at":"2025-08-12T16:41:04.761Z","avatar_url":"https://github.com/augustoarraes.png","language":"JavaScript","readme":"# FullStack Microsserviço CRUD React JS e Python FastAPI\n\nUma Aplicação FullStack onde temos como frontend em React JS, backend em Python FastAPI e banco de dados Postgres.\n- Pasta `fastapi_crud` é o backend da aplicação\n- E, `frontend-react-produtos` é frontend da aplicação\n\n\n## Subir a aplicação rápido\n\nAntes de subir a aplicação, verificar as credenciais, principalmente do BD, no `docker-compose.yml` e no `.env` do backend.\n\n```bash\ndocker compose up -d\n\n# caso o FastAPI não suba de imediato\ndocker restart fastapi_crud\n# caso queira verificar o log de execução do microsserviço\ndocker logs -f fastapi_crud\n```\n\nAcessando a Aplicação [http://localhost:3000](http://localhost:3000)\n\nAgora é so ver as rotas REST disponíveis para testar o backdend direto (Swagger da API): [http://127.0.0.1:5000/docs](http://127.0.0.1:5000/docs)\n\nE opcional tem a monitoração do serviço: `http://127.0.0.1:9090/`\n\n\n## Banco de Dados\n\nSugiro ter o pgAdmin para acessar o banco de dados.\n```bash\ndocker run --add-host=host.docker.internal:172.17.0.1 --name pgAdmin -p 8081:80 -e PGADMIN_DEFAULT_EMAIL=admin@admin.com -e PGADMIN_DEFAULT_PASSWORD=admin -d dpage/pgadmin4\n```\nhost do banco: host.docker.internal (Se for usar algum software Admin de dados, o host é `localhost` normal) \\\nnome do banco: fastapiDB \\\nporta: 5432 \\\nuser: postgres \\\npass: sua_senha \n\n\n## Opcional para quem estiver ingressando no FastAPI\n\n- Makefile\n- app/test_api.py\n- prometheus.yml\n\n\n## Rodar o Test\n\n```bash\npytest\n# ou\npytest --cov=api\n```\n\n\n## Boas Práticas na Codificação\n\nUm bom pré-requisito é ter uma boa massa de dados, banco de dados local interessante para o consumo dos Endpoints.\nSempre avaliar as Regras de Negócio.\n\n1. Sempre TESTE, regra das regras\n2. Teste os Endpoints com campos vazios, diante às Regras de Negócio (RN)\n3. Tratamento de Duplicidade em endpoints POST de inserção\n4. Endpoints de Filtro de Consulta/Pesquisa:\n4.1. Aceitar de campos nulos até cada campo para afinar o filtro da query\n4.2. Fragmentar a Query a cada campo: `if campo: ... \u003cparte da query filter SQLAlchemy\u003e` \n4.3. De acordo com RN específicas de Filtro, operadores `or_` e `and_` do SQLAlchemy\n4.4. Testar todas as possibilidades do Filtro\n5. Retorne status code 400 para condições não atendidas\n\n\n## Contato\n\nAugusto Arraes\n[site](http://linktr.ee/a.arraes)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faugustoarraes%2Fcrud_fullstack_react_fastapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faugustoarraes%2Fcrud_fullstack_react_fastapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faugustoarraes%2Fcrud_fullstack_react_fastapi/lists"}