GithubHelp home page GithubHelp logo

anacarolinabraga / dogbreedsapi Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 16 KB

API construída como projeto final para a disciplina de Programação Web III da formação de Web Full Stack ofertada pela Let's Code/Ada

C# 100.00%
api asp-net authentication csharp filtros logs token-jwt json

dogbreedsapi's Introduction

DogBreedsAPI

Projeto final do módulo de Programação Web III, com tema livre.

Teconologias utilizadas

  • .NET 6.0

  • ASP.NET Core Web API

  • C#

  • JSON

Nuget Package utilizado

  • Microsoft.AspNetCore.Authentication.JwtBearer 6.0.9

Como essa aplicação foi implementada?

  • A partir do login correto de um usuário é gerado um token JWT;

OBS: Os dados de acesso do administrador podem ser encontrados no appsettings.json. Colocar essas informações cruciais nesse arquivo NÃO é uma boa prática, mas foi disponibilizado dessa forma apenas para fins didáticos.

  • Esse token JWT é utilizado nos processos de Autenticação e Autorização para acesso as funcionalidades da DogBreedsAPI;
  • Sem um token autenticado, não é possível acessar as funcionalidades da DogBreedsAPI;
  • Toda vez que um POST, PUT, PATCH ou DELETE da DogBreedsAPI for executado com sucesso, será gerado um log (foi utilizado um filtro customizado para geração desses Logs);
  • Cada endpoint tem a declaração de retornos HTTP possíveis para eles, seguindo as práticas de programação;
  • Para facilitar a execução da aplicação em outros computadores, foi utilizado um Json para simular as movimentações no banco de dados. Um outro projeto que utiliza banco de dados pode ser visto aqui.

Gif demonstrativo da aplicação

Overview

O que acontece quando tenta solicitar um endpoint para a API sem estar autenticado

Processo de autenticação - Primeiro usuário que não existe, depois um que existe e demonstração que pode acessar os endpoints quando logado

    • É necessário logar através do POST da rota AthenticateLogin e fazer a autenticação para que possa acessar as funcionalidades da DogBreedsAPI.

Demonstração do funcionamento de todos os endpoints

Pt.1

Pt.2

Como ficou o registro de logs da demonstração anterior

Legendas

1- Post de uma nova raça

2- Put de uma raça ja existente (O Log de um Put de nova raça é igual ao Post de uma nova raça)

3- Patch de uma raça ja existente

4- Delete de uma raça pelo ID

Endpoints

AuthenticateLogin

  • POST: Para liberar acesso ao sistema, precisa fazer o login corretamente através desse endpoint.

DogBreeds

  • GET: Um GET das raças de cachorros paginado.
  • GET: Um GET de determinada raça através do ID.
  • POST: Um POST paginado no qual você pode decidir a partir de filtros quais serão os resultados que irão aparecer. Usar os filtros é opcional.
  • POST: Um POST que adiciona uma raça nova de cachorro. Ela define o ID sozinho.
  • PUT: Um PUT em que adiciona uma nova raça de cachorro, caso o ID dele não existe, ou atualiza uma raça de cachorro a partir de um ID já existente.
  • PATCH: Um PATCH que atualiza apenas as características de determinada raça de cachorro de determinado ID.
  • DELETE: Um DELETE que deleta uma raça de cachorro a partir de um ID.
As raças foram construídas segundo as informações desse site aqui.

dogbreedsapi's People

Contributors

anacarolinabraga avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.