{"id":26014545,"url":"https://github.com/brenonsc/baldursgamestoreapi","last_synced_at":"2025-03-06T02:33:51.322Z","repository":{"id":196991248,"uuid":"697748436","full_name":"brenonsc/BaldursGameStoreAPI","owner":"brenonsc","description":"Repositório criado com o objetivo de armazenar a API de uma loja de games criada em ASP.NET.","archived":false,"fork":false,"pushed_at":"2024-07-19T03:30:23.000Z","size":75,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-07-19T11:56:23.328Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://baldursgamestore.onrender.com","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brenonsc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-28T11:53:51.000Z","updated_at":"2024-07-19T03:30:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"0f675f96-c286-4260-9177-83e006c244f3","html_url":"https://github.com/brenonsc/BaldursGameStoreAPI","commit_stats":null,"previous_names":["brenonsc/baldursgameapi"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brenonsc%2FBaldursGameStoreAPI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brenonsc%2FBaldursGameStoreAPI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brenonsc%2FBaldursGameStoreAPI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brenonsc%2FBaldursGameStoreAPI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brenonsc","download_url":"https://codeload.github.com/brenonsc/BaldursGameStoreAPI/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242136024,"owners_count":20077582,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-06T02:31:43.589Z","updated_at":"2025-03-06T02:33:51.306Z","avatar_url":"https://github.com/brenonsc.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BaldursGameStoreAPI :space_invader::video_game:\n![License](https://badgen.net/badge/License/MIT/purple?icon=)\n![.NET](https://badgen.net/badge/.NET/v7.0/blue?icon=)\n![NuGet](https://badgen.net/badge/icon/Packages/green?icon=nuget\u0026label)\n![Docker](https://badgen.net/badge/icon/Available?icon=docker\u0026label)\n\nEsta é 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.\n\n\u003cbr\u003e\n\n## Tecnologias e Ferramentas utilizadas 💻\n\u003cdiv\u003e\n    \u003cimg align='center' height='50' width='70' title='.NET Core' alt='dotnet' src='https://github.com/devicons/devicon/blob/master/icons/dotnetcore/dotnetcore-original.svg' /\u003e\n    \u003cimg align='center' height='50' width='50' title='Nuget' alt='nuget' src='https://github.com/devicons/devicon/blob/master/icons/nuget/nuget-original.svg' /\u003e\n    \u003cimg align='center' height='62' width='72' title='Swagger' alt='swagger' src='https://github.com/bush1D3v/tsbank_api/assets/133554156/6739401f-d03b-47f8-b01f-88da2a9075d1' /\u003e\n    \u003cimg align='center' height='53' width='55' title='JsonWebToken' alt='jsonwebtoken' src='https://images.ctfassets.net/kbkgmx9upatd/6E4gdxqqmafg9Usjz9etTU/bc93ad8e3cea217c3de390239ff34c8c/jwt-hero.png' /\u003e \u0026nbsp;\n    \u003cimg align='center' height='48' width='48' title='Bcrypt' alt='bcrypt' src='https://bcrypt.online/images/bcrypt-esse-tools-logo-square.svg' /\u003e \n    \u003cimg align='center' height='50' width='65' title='PostgreSQL' alt='postgresql' src='https://github.com/devicons/devicon/blob/master/icons/postgresql/postgresql-original.svg' /\u003e\n    \u003cimg align='center' height='50' width='46' title='Microsoft SQL Server' alt='mssql' src='https://user-images.githubusercontent.com/15386828/118396465-5129c000-b658-11eb-8fa1-48f185431c82.png' /\u003e \u0026nbsp;\n    \u003cimg align='center' height='49' width='49' title='Jetbrains Rider' alt='rider' src='https://upload.wikimedia.org/wikipedia/commons/thumb/6/6e/JetBrains_Rider_Icon.svg/1200px-JetBrains_Rider_Icon.svg.png' /\u003e \u0026nbsp;\u0026nbsp;\n    \u003cimg align='center' height='48' width='48' title='Postman' alt='postman' src='https://seeklogo.com/images/P/postman-logo-0087CA0D15-seeklogo.com.png' /\u003e \u0026nbsp;\n    \u003cimg align='center' height='63' width='63' title='Docker' alt='docker' src='https://github.com/devicons/devicon/blob/master/icons/docker/docker-original.svg' /\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n## Testando a API :man_scientist:\n\n### Na nuvem ☁️\nPara fazer os testes de forma online e sem necessidade de configurações, basta acessar o link do \u003ca target=\"_blank\" href=\"https://baldursgamestore.onrender.com\"\u003edeploy\u003c/a\u003e e começar a utilizar.\n\n\u003cbr\u003e\n\n### Localmente (utilizando Docker) :whale:\nPara 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:\n\n#### 1. Clone o Projeto\n\n```bash\ngit clone https://github.com/brenonsc/BaldursGameStoreAPI.git\ncd BaldursGameStoreAPI\n```\n\n#### 2. Inicialize o contêiner do Docker\n\n```bash\ndocker compose up\n```\n\n#### 3. Configure o appsettings.json\n\nCertifique-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:\n\n```json\n\"Environment\": {\n    \"Start\": \"DEV\"\n},\n```\n\n#### 4. Execute a aplicação\n\nVolte ao Terminal ou CMD e execute os seguintes comandos:\n\n```bash\ncd BaldursGame\ndotnet run\n```\n\nOutra 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. \n\n\u003cbr\u003e\n\nA 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.\n\n\u003cbr\u003e\n\n## Autenticação com JWT :key:\n\nPara 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.\n\nExemplo de cabeçalho de autenticação:\n\n```\nAuthorization: Bearer \u003cseu-token-jwt\u003e\n```\n\n\u003cbr\u003e\n\n## Segurança de Acesso aos Recursos :lock:\n\nA 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\":\n\n\u003cbr\u003e\n\n### Recurso Produto e Categoria\n\n- 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.\n\n\u003cbr\u003e\n\n### Recurso Usuário\n\nPara o recurso \"Usuário\", a seguinte política de segurança foi implementada:\n\n- **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.\n- **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.\n\nLembrando 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.\n\n\u003cbr\u003e\n\n## Licença\n\nEste software está licenciado sob a [Licença MIT](https://github.com/brenonsc/BaldursGameStoreAPI/blob/main/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrenonsc%2Fbaldursgamestoreapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrenonsc%2Fbaldursgamestoreapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrenonsc%2Fbaldursgamestoreapi/lists"}