0

Criando API REST Simples com .NET Core - #decolatech

Rafael Barbosa
Rafael Barbosa

Continuando com o desafio da DRI, dessa vez a mentoria foi sobre como criar uma API com .Net Core ministrada pelo professor Victor Frutuoso.


Nessa mentoria, mais uma mão na massa, foi proposto utilizar o cadastro de Séries e Filmes que fizemos durante a trilha, adaptando o código para que o projeto possa funcionar tanto como uma Console Application, quanto como uma API.


Mas como não dá para fazer uma API sem saber o que é uma API, o professor começou com uma explicação sobre o conceito de API (Application Program Interface), que seria uma interface, uma ponte, responsável por fazer a integração entre sistemas ou hardwares diversos, não dependendo de uma linguagem, framework ou tecnologia específica para isso. Como exemplo, ele nos explicou que o intérprete de libras Hélio, que tem acompanhado as nossas mentorias pela Avanade, funcionaria como espécie de API entre quem não sabe utilizar libras para se comunicar e as pessoas que utilizam libras como forma de comunicação.


Para não começar do zero com a nossa API, nós utilizamos uma Console Application construída durante a trilha do bootcamp, para cadastro de séries. Utilizando os conceitos de Clean Code, o professor nos explicou como segregar a aplicação separando em projetos a parte da Console Application e a WEB API que iríamos criar. Como padrão, segundo o professor Victor, quando criamos uma WEB API com o Visual Studio, ele utiliza o MVC, padrão que nós também iríamos usar.


Mas afinal, o que seria MVC? O MVC (sigla em inglês para Model, View e Controller) é um padrão de arquitetura de software, que possibilita o desenvolvimento de uma aplicação em camadas muito bem definidas, onde a gente divide as responsabilidades em camadas de apresentação, de regras de negócio e de acesso aos dados. Onde:

·      Model – responsável pelos dados que a aplicação irá entregar, que modela os dados e o comportamento por trás da regra de negócio;

·      View – responsável pela forma como os dados serão entregues, que inclui os elementos de exibição no cliente, interface, que está na linha de frente de comunicação com o usuário;

·      Controller – responsável por intermediar as requisições enviadas pela View com as respostas fornecidas pela Model, camada intermediária entre a View e a Model.


Com o projeto separado em Class Library, Console e WEB API, chegou a hora de fazer as configurações da WEB API, onde na model implementamos os dados que a API iria entregar, e na Controller programamos as requisições HTTP a serem solicitadas pela API através de GET, PUT, POST e DELETE. Nada muito diferente da API que construímos durante o bootcamp para um catalógo.


Na minha visão a grande novidade da mentoria foi poder integrar conhecimentos que obtivemos durante o bootcamp e principalmente como pegar um cenário já montado e transformá-lo de acordo com a nossa necessidade, por isso, quem ainda não viu a mentoria aconselho dar uma passada por ela, pois vale a pena.          


Para entender um pouco melhor o que era MVC eu li alguns artigos na internet que eu deixei abaixo. Também segue o meu repositório do projeto, caso alguém queira ver e talvez dar alguma sugestão para algo que não esteja correto.


http://www.macoratti.net/vbn_mvc.htm

https://www.devmedia.com.br/introducao-ao-padrao-mvc/29308

https://www.lewagon.com/pt-BR/blog/o-que-e-padrao-mvc

https://github.com/rafaelxb/Console-e-WEB-API-Cadastro-Series

0
0

Comentários (4)

0
Rafael Barbosa

Rafael Barbosa

16/09/2021 22:23

Boa Noite Breno


Também curti bastante, até esta mentoria eu já tinha visto algumas vezes, mas ainda não tinha ficado claro pra mim o que era Rest e nem MVC, porém, com a mentoria e com algumas coisa que li agora eu curti muito viu. A forma de organizar a solução, com tudo definido no seu lugar, curti demais.

0
Rafael Barbosa

Rafael Barbosa

16/09/2021 22:11

Obrigado Vagner.

0
Breno Silva

Breno Silva

16/09/2021 20:44

Boa Rafael!!


Curto muito esse design de arquitetura rest, bem estruturado!

0
Vagner Gusmão

Vagner Gusmão

16/09/2021 19:49

Muito bom, Rafael! Parabéns!

Software Developer Jr

Brasil