An open API service indexing awesome lists of open source software.

https://github.com/brenonsc/baldursgamestoreapi

Repositório criado com o objetivo de armazenar a API de uma loja de games criada em ASP.NET.
https://github.com/brenonsc/baldursgamestoreapi

Last synced: over 1 year ago
JSON representation

Repositório criado com o objetivo de armazenar a API de uma loja de games criada em ASP.NET.

Awesome Lists containing this project

README

          

# BaldursGameStoreAPI :space_invader::video_game:
![License](https://badgen.net/badge/License/MIT/purple?icon=)
![.NET](https://badgen.net/badge/.NET/v7.0/blue?icon=)
![NuGet](https://badgen.net/badge/icon/Packages/green?icon=nuget&label)
![Docker](https://badgen.net/badge/icon/Available?icon=docker&label)

Esta é a documentação para a API de uma loja de games que permite a manipulação de dados de produtos e categorias relacionadas a jogos. Esta API foi construída seguindo as melhores práticas do ASP.NET e oferece funcionalidades completas para gerenciar produtos e categorias.


## Tecnologias e Ferramentas utilizadas 💻


dotnet
nuget
swagger
jsonwebtoken  
bcrypt
postgresql
mssql  
rider   
postman  
docker


## Testando a API :man_scientist:

### Na nuvem ☁️
Para fazer os testes de forma online e sem necessidade de configurações, basta acessar o link do deploy e começar a utilizar.


### Localmente (utilizando Docker) :whale:
Para configurar a aplicação para executar em ambiente local, é necessário ter instalado o Docker e o .NET 7 SDK, e assim seguir o passo a passo abaixo:

#### 1. Clone o Projeto

```bash
git clone https://github.com/brenonsc/BaldursGameStoreAPI.git
cd BaldursGameStoreAPI
```

#### 2. Inicialize o contêiner do Docker

```bash
docker compose up
```

#### 3. Configure o appsettings.json

Certifique-se de alterar a variável "Environment":"Start" no arquivo `appsettings.json` do projeto (localizado dentro da pasta BaldursGame). A mesma está com o valor "PROD", que deve ser alterado para "DEV" para ser usado localmente, como representado abaixo:

```json
"Environment": {
"Start": "DEV"
},
```

#### 4. Execute a aplicação

Volte ao Terminal ou CMD e execute os seguintes comandos:

```bash
cd BaldursGame
dotnet run
```

Outra opção é usar uma IDE .NET de sua preferência, como Visual Studio ou Jetbrains Rider. A aplicação estará disponível em [localhost://5000](http://localhost:5000/swagger/index.html), no seu navegador.


A API está documentada no Swagger. Certifique-se de testar todas as operações CRUD para os recursos "Produto", "Categoria" e "Usuários", bem como os endpoints de busca por intervalo de preço e título ou console.


## Autenticação com JWT :key:

Para usar o método de login e obter um token JWT válido, faça uma solicitação POST para `/api/usuarios/logar` com as credenciais do usuário no corpo da solicitação. O servidor irá gerar um token JWT que deve ser incluído no cabeçalho das solicitações subsequentes como Bearer Token para autenticar o usuário. O token é válido por 1 hora, após o qual será necessário fazer login novamente.

Exemplo de cabeçalho de autenticação:

```
Authorization: Bearer
```


## Segurança de Acesso aos Recursos :lock:

A fim de garantir a segurança dos recursos e dados da API, foram implementadas regras de acesso que restringem determinadas operações com base na autenticação do usuário. Abaixo, estão as restrições de acesso para os recursos "Produto" e "Categoria":


### Recurso Produto e Categoria

- Todos os métodos CRUD relacionados ao recurso "Produto" requerem autenticação com um token JWT válido no cabeçalho da solicitação. Isso garante que apenas usuários autenticados tenham acesso a essas operações.


### Recurso Usuário

Para o recurso "Usuário", a seguinte política de segurança foi implementada:

- **Cadastro de Usuário**: O método de cadastro de usuário (`POST /api/usuarios/cadastrar`) pode ser acessado de forma anônima, ou seja, sem a necessidade de autenticação. Isso permite que novos usuários se registrem na plataforma.
- **Login de Usuário**: O método de login (`POST /api/usuarios/logar`) também pode ser acessado de forma anônima. No entanto, ao fazer login com sucesso, um token JWT válido é gerado e fornecido ao usuário. Este token deve ser usado para autenticar todas as outras operações subsequentes que exigem autenticação.

Lembrando que a segurança é fundamental para proteger os dados e garantir a integridade da plataforma. Certifique-se de incluir o token JWT válido no cabeçalho das solicitações sempre que necessário.


## Licença

Este software está licenciado sob a [Licença MIT](https://github.com/brenonsc/BaldursGameStoreAPI/blob/main/LICENSE).