Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/william-ks/fastify-template
https://github.com/william-ks/fastify-template
fastify poo swagger typescript
Last synced: 12 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/william-ks/fastify-template
- Owner: william-ks
- Created: 2024-09-08T23:23:13.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-12-15T14:29:05.000Z (14 days ago)
- Last Synced: 2024-12-15T15:30:41.221Z (14 days ago)
- Topics: fastify, poo, swagger, typescript
- Language: JavaScript
- Homepage:
- Size: 121 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# Fastify Template
Este é um template para uma API REST, utilizando das tecnoligias descritas abaixo:
[`Fastify`](https://fastify.dev/) -> Framework web Node.js para criação de APIs focado em velocidade e eficiência.
[`Swagger`](https://swagger.io/docs/) -> Ferramenta para design, construção e documentação de APIs RESTful.
[`TypeScript`](https://www.typescriptlang.org/) -> Superset de JavaScript que adiciona tipagem estática opcional.
[`SQLite`](https://www.sqlite.org/index.html) -> Banco de dados relacional leve e embutido.
[`Prisma`](https://www.prisma.io) -> ORM (Object-Relational Mapping) moderno para Node.js e TypeScript.
[`Prettier`](https://prettier.io/) -> Formatador de código que impõe um estilo consistente.
[`ESLint`](https://eslint.org/) -> Ferramenta de linting para identificar e corrigir problemas em código JavaScript/
TypeScript.[`Lint-Staged`](https://www.npmjs.com/package/lint-staged) -> Executa linters em arquivos que foram "staged" no Git.
[`Git-Commit-Msg-Linter`](https://www.npmjs.com/package/git-commit-msg-linter) -> Ferramenta para garantir que mensagens de commit sigam um padrão específico.
[`Husky`](https://typicode.github.io/husky/) -> Ferramenta para criar hooks de Git, como pré-commit, pós-commit, etc.
[`Zod`](https://zod.dev/) -> Biblioteca de validação de esquemas e tipos em TypeScript.
[`PlopJS`](https://plopjs.com/documentation/) -> Ferramenta para automação de código e geração de arquivos/templates.
...and more.
## Após o Download, veja como iniciar o Projeto
**Se não tiver o _yarn_**
```
npm i -g yarn
```Instalar as dependêcias.
```
yarn install
```Ativar o husky
```
yarn run husky
```Iniciar o servidor
```
yarn run dev
```## Modelos de Commits
Antes de todo commit ser feito, automaticamente o app ira rodar o `eslint --fix` e o `prettier --write` caso o app seja aprovado, então, haverá uma validação do `git-commit-msg-linter` validando o formato abaixo:
```
[scope opcional]:
```**type**: pode ser uma das seguintes opções:
- `feat`: A new feature.
- `fix`: A bug fix
- `docs`: Documentation only changes
- `style`: Changes that do not affect the meaning of the code (white-space, formatting, missing semi--colons, etc)
- `refactor`: A code change that neither fixes a bug nor adds a feature
- `test`: Adding missing tests or correcting existing ones.
- `chore`: Changes to the build process or auxiliary tools and libraries such as documentation generation.
- `perf`: A code change that improves performance.
- `build`: Changes thad affect the build system or external dependencies (example: scopes: gulp, broccoli, npm)
- `ci`: Changes to the CI configuration files and scripts## Gerando Arquivos com o PLOP
O plop.js foi configurado no seguinte comando
```
yarn run plop
```Para gerar arquivos com o plop, basta executar o comando acima e seguir as intruções, ele pode gerar um modulo que contem:
- Repository
- Model
- useCases/
- entities/
- rotas
- e os arquivos para o useCase "CREATE"Ele também pode gerar um "useCase" que não ira conter rotas, nem model
## Swagger
O swagger ja está configurado para a rota `/docs`, podendo ser alterado no arquivo de configuração.
#### Como criar uma nova rota no swagger ?
Basta configurar e utilizar o schema que o fastify ddisponibiliza em uma rota.