Backend Developer
REpresentational State Transfer (REST), em português Transferência de Estado Representacional, é uma abstração da arquitetura da World Wide Web (WWW), um estilo arquitetural que consiste de um conjunto coordenado E BLA, BLA, BLA....
Imagina o tio Zuckerberg fazendo o facebook há um século atrás!
O nosso querido amigo Mark escreveu toda a regra de negócio, e fez todos os acessos à base de dados na aplicação web.
O Hypertext Transfer Protocol (HTTP), em português Protocolo de Transferência de Hipertexto, é um protocolo de comunicação (na camada de aplicação segundo o Modelo OSI) utilizado para sistemas de informação de hipermídia, distribuídos e colaborativos.[1] Ele é a base para a comunicação de dados da World Wide Web E BLA, BLA, BLA....
Para adiantar, eu coloquei o projeto base no Desktop de todos vocês, aproveitem!
Nesse projeto vocês já tem o módulo de Banco de Dados todo configurado e pronto.
Com a UserController criada, vamos iniciar.
Rota padrão
Para usar o módulo de banco de dados, basta importar a biblioteca RESTful.SENAI.BO
Crie a propriedade na controller para acessar o Banco
A função do POST, no conjunto de métodos HTTP, é enviar uma representação de uma nova entidade de dados ao servidor de forma que ele seja armazenado como um novo subordinado do recurso identificado pelo URI E BLA, BLA, BLA...
Para usar é bem simples... Em cima de cada método coloque o seguinte atributo.
Primeiro iremos definir a rota para cadastrar um usuário. Coloque o atributo abaixo acima do método de cadastro.
Professor, e o método de cadastro?
Não se preocupem com isso!
Agora nós precisamos fazer uma Model para cadastrar
E o que vamos inserir?
E como essa Model vai se relacionar com a Controller?
Agora na controller podemos chamar o método de cadastro do Field _userBo
Faltou só uma coisa, essa Model não é do tipo User
Que tal criarmos um método para converter essa model pra gente?
Abram o Postman, e façam como o Sensei!
Vocês acham útil eu receber como resposta o "deletedAt" e o "password" do usuário cadastrado?
Vamos criar uma model Read?
Bora pra controller!
Muito melhor não?
Dá pra melhorar mais! HAHAHA
Façam isso no seu código
Na Model Read.cs
O "name", "username" e "password" podem ser vazios?
Pra adiantar pra vocês... Pode sim!
Por enquanto...
Adicionem os DataAnnotations na Create.cs
Não! HAHAHA
Relaxa! Deus no comando, ok?!
Adicione essa validação na sua controller e tá tudo certo!
Solicita algum recurso como um arquivo ou um script CGI (qualquer dado que estiver identificado pelo URI) por meio do protocolo HTTP. Por exemplo, segue abaixo uma comunicação entre um cliente e um servidor HTTP E BLA, BLA, BLA...
Lembra de como definimos o POST, imaginem como é o do GET!!
Vocês lembram de como criamos a rota pro Create? Segue a vida!
O método é só fazer assim que a mágica acontece sozinha!
Vamos primeiro rever a model Read.cs
O segundo passo e mexer na Controller
Coloquem isso no seu WebApiConfig.cs
Continua sendo GET tá bom?
A diferença está na rota!
E se eu colocar um id que não existe?
Edita as informações de um determinado recurso.
Advinhem como definimos um PUT!
A rota é idêntica à do FindById
E pra editar um registro faça!
Exclui o recurso.
Sério, não precisava nem da imagem!
A rota é idêntica à do FindById e do Update
E pra deletar um registro faça!
E se eu não conseguir deletar?
Adicione a seguinte validação!
Colocaremos só o que é pertinente na model
Vamos fazer o nosso recurso de Login
Ele autenticou, beleza, mas ele tá validando se eu posso acessar os recursos da aplicação?
O nosso método de login vai ficar assim agora!
Eis o nosso Filter
Olha ele ai!
Erros!
Validação!
Eu também posso poupar vocês de ficar chamando ele toda hora!
Simples