Skip to content

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

License

Notifications You must be signed in to change notification settings

brenonsc/BaldursGameStoreAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BaldursGameStoreAPI 👾🎮

License .NET NuGet Docker

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 👨‍🔬

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) 🐳

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

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

2. Inicialize o contêiner do Docker

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:

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

4. Execute a aplicação

Volte ao Terminal ou CMD e execute os seguintes comandos:

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, 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 🔑

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 <seu-token-jwt>

Segurança de Acesso aos Recursos 🔒

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.

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published