https://github.com/hmontarroyos/api_convert_spreadsheet
https://github.com/hmontarroyos/api_convert_spreadsheet
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/hmontarroyos/api_convert_spreadsheet
- Owner: HMontarroyos
- Created: 2023-10-06T18:20:19.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-10-09T13:56:37.000Z (over 1 year ago)
- Last Synced: 2025-03-29T13:57:44.375Z (2 months ago)
- Language: Python
- Size: 30.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![LinkedIn][linkedin-shield]][linkedin-url]
API Convert Spreadsheet |
Tecnologias Utilizadas |
Como Instalar o Projeto |
Como usar |
Deploy da aplicação
## API Convert Spreadsheet
Essa API foi desenvolvida em Python através do FastAPI, com o proposito, de receber planilhas de custos de clientes no formato XLSX, e após isso conferir se bate com as propriedades esperadas pelo modelo, caso confirma ela converte esses dados em uma espécie de JSON e devolve isso como resposta.
### Tecnologias Utilizadas
[![Python][Python]][Python-url]
[![Fast_API][Fast_API]][Fast_API-url]
[![Uvicorn][Uvicorn]][Uvicorn-url]
[![Pandas][Pandas]][Pandas-url]
[![Pydantic][Pydantic]][Pydantic-url]
[![Httpx][Httpx]][Httpx-url]
[![Pytest][Pytest]][Pytest-url]
[![Docker][Docker]][Docker-url]
### Utilitários
[![Postman][Postman]][Postman-url]
### Como Instalar o Projeto
Após clonar o projeto use o seguinte comando.
```sh
pip install -r requirements.txt
```Após baixar todas as Dependências do Projeto dentro da pasta Raiz, inicie o Servidor com o Comando:
```sh
python src/main.py
```### Como usar
Feito todo os passos acima o seu servidor vai estar rodando na porta 4005.
#### Endpoints
Para Fazer as chamadas dos endpoints da API seria necessario ter algum cliente servidor no meu caso eu usei o Postman mas qualquer um já serviria.
Estou usando a porta 4005 para rodar minha aplicação.
### POST
http://localhost:4005/spreadsheet/
Essa rota é onde você vai enviar seu arquivo .xlsx e ele vai fazer essa conversão para o JSON e e lhe devolver esse JSON como resposta.Para testar eu deixei um arquivo .xlsx na pasta uploads dentro de src, onde você caso esteja usando o Postman por exemplo pode ir na opção Body e no key escrever file por exemplo e escolher do tipo file e no Value você seleciona o arquivo TESTE_PLANILHA.xlsx da pasta uploads e envia.
#### Testes
Caso queira rodar os testes para vê se está tudo correto pode executar o seguinte comando
```sh
python -m pytest
```
que o PyTest vai executar os tests que foram criados para ele.
### Dockerizar
Parar criar o container da aplicação esubir posteriomente em um Docker hub por exemplo ou usar localmente é so rodar o seguinte comando
```docker
docker build -t NOME_DA_IMAGEM```
### 🚀 Let's code! 🚀
[contributors-shield]: https://img.shields.io/github/contributors/HMontarroyos/api_convert_spreadsheet.svg?style=for-the-badge
[contributors-url]: https://github.com/HMontarroyos/api_convert_spreadsheet/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/HMontarroyos/api_convert_spreadsheet.svg?style=for-the-badge
[forks-url]: https://github.com/HMontarroyos/api_convert_spreadsheet/fork
[stars-shield]: https://img.shields.io/github/stars/HMontarroyos/api_convert_spreadsheet.svg?style=for-the-badge
[stars-url]: https://github.com/HMontarroyos/api_convert_spreadsheet/stargazers
[issues-shield]: https://img.shields.io/github/issues/HMontarroyos/api_convert_spreadsheet.svg?style=for-the-badge
[issues-url]: https://github.com/HMontarroyos/api_convert_spreadsheet/issues
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
[linkedin-url]: https://www.linkedin.com/in/hebertmontarroyos-developer/[Python]: https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54
[Python-url]: https://www.python.org/
[Fast_API]: https://img.shields.io/badge/FastAPI-005571?style=for-the-badge&logo=fastapi
[Fast_API-url]: https://fastapi.tiangolo.com/
[Uvicorn]: https://img.shields.io/badge/uvicorn-6A5FBB?style=for-the-badge
[Uvicorn-url]: https://www.uvicorn.org/
[Pandas]: https://img.shields.io/badge/pandas-%23150458.svg?style=for-the-badge&logo=pandas&logoColor=white
[Pandas-url]: https://pandas.pydata.org/
[Pydantic]:https://img.shields.io/badge/Pydantic-%233F4F75.svg?style=for-the-badge
[Pydantic-url]: https://docs.pydantic.dev/latest/
[Httpx]: https://img.shields.io/badge/Httpx-%230C55A5.svg?style=for-the-badge
[Httpx-url]: https://www.python-httpx.org/
[Pytest]: https://img.shields.io/badge/PyTest-%2300599C.svg?style=for-the-badge
[Pytest-url]: https://docs.pytest.org/en/7.4.x/[Docker]: https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge&logo=docker&logoColor=white
[Docker-url]: https://www.docker.com/
[Postman]: https://img.shields.io/badge/Postman-gray?style=for-the-badge&logo=postman
[Postman-url]: https://www.postman.com/