Metadata-Version: 2.4
Name: fastapi-minimal-template
Version: 0.1.0
Summary: Generate a minimal FastAPI project for learning Docker and uv
Project-URL: Homepage, https://github.com/dirleiflsilva/fastapi-minimal-template
Project-URL: Issues, https://github.com/dirleiflsilva/fastapi-minimal-template/issues
Author: fastapi-minimal-template contributors
License-Expression: MIT
License-File: LICENSE
Keywords: cli,docker,fastapi,template,uv
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Framework :: FastAPI
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Code Generators
Requires-Python: >=3.12
Requires-Dist: typer>=0.12
Description-Content-Type: text/markdown

# fastapi-minimal-template

Uma pequena ferramenta CLI de código aberto que cria uma aplicação FastAPI
deliberadamente mínima. Ela foi projetada para aulas práticas sobre Python, APIs
REST, Docker, Docker Compose e gerenciamento de dependências com
[uv](https://docs.astral.sh/uv/).

O projeto gerado contém dois endpoints, testes e arquivos opcionais para Docker.
Intencionalmente, ele não inclui banco de dados, autenticação, ORM ou
infraestrutura de produção.

## Início rápido

Execute a versão mais recente publicada sem instalá-la:

```bash
uvx fastapi-minimal-template@latest new hello-api
cd hello-api
uv sync
uv run fastapi dev src/app/main.py
```

Acesse:

- API: <http://localhost:8000>
- Swagger: <http://localhost:8000/docs>
- Verificação de saúde: <http://localhost:8000/health>

A forma abreviada também é aceita:

```bash
uvx fastapi-minimal-template@latest hello-api
```

Use `--no-docker` para omitir os arquivos do Docker. Um destino existente nunca
será alterado, a menos que `--force` seja informado explicitamente:

```bash
fastapi-minimal-template new hello-api --no-docker
fastapi-minimal-template new hello-api --force
```

## Outras opções de instalação

Execute uma versão específica:

```bash
uvx fastapi-minimal-template@0.1.0 new hello-api
```

Instale o comando permanentemente:

```bash
uv tool install fastapi-minimal-template
fastapi-minimal-template new hello-api
```

## Desenvolvimento da CLI

```bash
git clone https://github.com/dirleiflsilva/fastapi-minimal-template.git
cd fastapi-minimal-template
uv sync
uv run fastapi-minimal-template new hello-api
```

Para reproduzir a experiência do `uvx` antes da publicação:

```bash
uvx --from . fastapi-minimal-template new hello-api
```

Um caminho absoluto pode ser usado após `--from` caso a forma com o diretório
atual não seja resolvida por uma versão mais antiga do uv.

Execute todas as verificações de qualidade e construa a distribuição:

```bash
uv run ruff check .
uv run ruff format --check .
uv run pytest
uv build
```

## Publicação

Depois de atualizar a única declaração de versão em
`src/fastapi_minimal_template/__init__.py`, valide e construa o pacote:

```bash
uv sync
uv run ruff check .
uv run ruff format --check .
uv run pytest
uv build
uv publish
```

A publicação requer credenciais do PyPI e deve ser realizada a partir de um
commit de release limpo e revisado.

## Licença

[MIT](LICENSE)
