Primeiras aulas do curso APIs Rest com Asp.NET Core 2.1 Parte 1: Da app MVC para API

APIs Rest com Asp.NET Core 2.1 Parte 1: Da app MVC para API

Introdução a Web APIs - Introdução

Fala galera, tudo bem? Eu sou Daniel Portugal. Eu quero apresentar para vocês um novo curso.

Imagina a seguinte situação, você está procurando vaga por emprego e aí você está vendo quais os termos que estão aparecendo lá, os requisitos para aquelas vagas.

E aí você fica tranquilo porque aparecem alguns termos que você já domina, que você já estudou aqui na plataforma Alura e você já fez vários projetos com C#, .NET, AspNet MVC, não é isso? Então você está tranquilo, beleza?

Só que aparece um novo termo nesses requisitos, que deixa você um pouquinho mais tenso chamado Web Api. Aí você fica já, "tenho que pesquisar isso na internet, não sei o que é isso, tem que estudar isso e tal."

Aí vem um outro termo logo abaixo que você começa a ficar bem tenso, termo chamado REST, e aí você começa a suar frio. Para piorar as coisas, aparecem outros termos que você ainda nem tinha visto: Restful APIs, JWT, coisa que você achava que era JAVA, o que é isso? Afinal, não sei o que tem a ver com isso.

Aí você fica desesperado e não consegue nem pensar em aplicar aquela vaga ali. Então, a minha ideia com esse curso é fazer uma introdução a Web APIs usando AspNet Core, para te deixar um pouco mais tranquilo, para dar contexto a essas palavras que estão aparecendo aí.

Alguns desses termos já são mencionados aqui no visual estúdio, quando você vai criar um novo projeto. Então, vou aqui criar um projeto web AspNet Core, quando aperto ok aqui na segunda janela já me aparece aqui um Template para criar uma API. Que é API?

Aqui na descrição ele fala também de serviço, HTTP Restful, que diabos é isso? Então, primeira coisa, API, gente, vou até ter aqui, Web API, é uma API disponibilizada na Web e API é uma sigla para Application Programming Interface. Aqui eu coloquei três ps porque eu estou muito nervoso, quero que vocês participem desse curso.

Uma API, Application Programming Interface, quando você precisa disponibilizar sua aplicação para terceiros, para outro time na sua empresa, para outra empresa, para um parceiro e esse outro time não vai conhecer a implementação, não vai conhecer as suas tecnologias, suas linguagens, beleza? Então você vai disponibilizar as funcionalidades da sua aplicação para ser programada por um outro time, um terceiro. Então isso é API. Quando você coloca na Web, é uma Web API, tudo bem?

Nesse curso a gente vai pegar uma aplicação tradicional onde ela tem toda a responsabilidade, persistência, de apresentação, segurança, regra de negócio e vai começar a evoluir ela, a migrar ela para uma API, e a gente vai ver o problema que isso vai aparecer, que vão aparecer e como a gente vai resolver usando AspNet Core.

Tudo bem gente? Espero que você tenha ficado curioso e queira conhecer um pouco mais sobre esses termos Web API Restful, tudo mais. Vem comigo para a gente começar esse curso.

Introdução a Web APIs - Preparando o ambiente

Galera, vamos preparar o ambiente aí na sua máquina para você rodar o curso e estudar sem nenhum problema.

A primeira coisa é você atualizar o Visual Studio na sua máquina.

Eu vou precisar da versão 15.7 ou acima, beleza?

Então, provavelmente você já deve ter o Visual Studio na sua máquina. Se você não tiver, eu vou colocar o link para você baixar a versão do Visual Studio, mas, se você já tem o Visual Studio, você vai precisar atualizar a versão - se você já não atualizou.

Então você vai ter que abrir aqui o Visual Studio Installer. Deixa eu clicar aqui na Cortana, Visual Studio Installer. Beleza?

Vai perguntar o que ele precisa instalar, vai abrir essa telinha do Visual Studio Installer.

Pode ser que ele mesmo, o próprio instalador, precise se atualizar, então ele vai pedir para se atualizar, você vai confirmar e ele vai baixar a atualização do instalador, depois você vai ter esta telinha aqui para atualizar.

Olha, a minha versão aqui é a 15.5.6 nesta máquina, então eu vou clicar aqui em atualizar e ele vai baixar a atualização para a mais recente - 15.7.4 - no momento de gravação deste vídeo aqui.

Galera, agora que você já atualizou o Visual Studio para versões acima da 15.7, o próximo passo vai ser atualizar o .NET Core.

Então a gente vai agora atualizar o .NET para o .NET Core 2.1 - então vou deixar também um outro link para vocês baixarem o .NET Core 2.1, beleza?

Está ali: microsoft.com/net/downloads/. A gente vai baixar a versão SDK, que nós somos desenvolvedores, então a gente vai baixar o kit de desenvolvimento da versão 2.1.

Ele vai baixar aqui e quando terminar de baixar você vai instalar esse cara e aí eu volto com você para a gente poder continuar e verificar se está tudo ok dentro do Visual Studio.

Muito bem, agora que a gente já atualizou o Visual Studio e instalou o .NET Core 2.1, a gente vai executar o Visual Studio.

Outra coisa que eu quero que vocês façam também já: baixem, por favor, o projeto inicial, que a gente vai começar a estudar para poder fazer o nosso estudo de WEB API, e descompactem em uma pasta.

Estou usando a pasta padrão de projetos do Visual Studio. Fica em Documentos, Visual Studio 2017, Projetos. Descompactem lá.

Agora a gente vai abrir o Visual Studio e vai abrir esse projeto, para a gente executar esse projeto pela primeira vez. Está bom?

Então eu vou abrir aqui o Visual Studio 2017 e vou executar aquele meu projeto.

Deixa eu fechar isso aqui, é onde eu vejo os objetos do SQL Server, e não quero ver agora.

Então até já abri uma vez ele aqui. O que vocês vão fazer é: Arquivo, Abrir, Projeto/Solução e aí, lá nos Documentos, Visual Studio 2017, Projetos, vocês vão abrir esse projeto chamado Alura.WebAPI. Então vocês vão abrir esta solução aqui.

Eu reservei um vídeo só para falar um pouquinho de como a solução está organizada, então não vou falar disso aqui agora, mas essa solução - vou fechar aqui essas pastas de solução - é uma solução que tem uma aplicação Web tradicional, como você já veio aprendendo a fazer desde os cursos anteriores aí na Alura.

Essa aplicação ela é responsável por tudo, por autenticação, autorização, persistência, apresentação - as views do ASP.NET MVC -, então, ela faz tudo, é uma aplicação que a gente está chamando de tradicional monolítica.

A gente vai começar a evoluir aqui o nosso estudo para perceber que esta aplicação tem alguns problemas no jeito que ela está sendo projetada, e a gente vai fazer algumas melhorias para que ela seja integrada, para que a gente consiga integrar essa solução com outros projetos.

Mas o que eu preciso que vocês façam é executar essa aplicação pela primeira vez, então garantam que esse projeto é o projeto de inicialização.

Aqui ele vai estar em negrito, e aqui ele vai estar marcado - WebApp -, e eu vou executar com um Ctrl + F5 essa aplicação e ele vai demorar um pouquinho para rodar, porque eu coloquei no código do contexto, do Entity Framework Core, para ele automaticamente criar o banco de dados.

Vocês vão ver aí, depois eu mostro no próximo vídeo, que a gente vai usar dois bancos de dados: um banco de dados para o negócio, que é uma lista de leitura, usando o mesmo exemplo que a gente usou no curso de MVC; e um banco de dados para guardar, armazenar informações de segurança dos usuários, papéis e tudo mais, que o Identity costuma fazer.

Então é o seguinte: executou a aplicação, demorou um pouquinho, mas apareceu aqui a página da aplicação.

Nós não temos ainda um usuário para fazer login, beleza?

Então eu quero que vocês entrem nessa rota aqui, Register, para colocar um usuário novo.

Eu vou colocar aqui um usuário chamado Admin e a senha é a senha superforte 123. Beleza?

Gente, vocês vão criar o usuário e a senha de vocês aí, mas tenham a certeza de que vocês vão guardar essa senha.

Coloca aí em algum lugar, guarde isso, porque a gente vai usar isso algumas vezes na nossa aplicação e quando a gente for fazer também a criação de outros projetos. Tudo bem?

Então, Admin, senha 123, é a que estou usando aqui.

Vou clicar em registro e ele vai registrar esse usuário.

Depois que ele registrar esse usuário, ele vai me pedir novamente o login para essa aplicação.

No meu caso, eu já tinha me logado, mas eu vou fazer de novo aqui: usuário - eu tenho uma rota para logout - e agora eu faço aqui login admin, 123.

Agora estou na tela inicial da minha aplicação.

Não está aparecendo nada aqui, mas eu tenho aqui uma lista chamada Para Ler, outra Lendo e outra Lidos.

Aqui vão aparecer os livros de cada lista, ou seja, essa aplicação é uma aplicação para eu ficar monitorando a minha leitura, são livros que eu quero ainda ler, livros que já estou lendo e livros que eu já terminei de ler.

Eles vão aparecer nessas três colunas aqui.

Então, vamos para o próximo vídeo, onde eu vou mostrar como é que essa aplicação está montada, tanto em termos de funcionalidades, quanto a arquitetura dela.

Introdução a Web APIs - Aplicação Inicial

Pessoal, nossa aplicação de exemplo chamada Lista de Leitura ela quer atender o seguinte cenário. Você está visitando uma biblioteca, ou então está visitando um site de livros. Por exemplo, aqui a casa do código.

E está lá vendo esses livros, tal, percebendo que existe alguns livros conhecidos, alguns livros que você deseja ler. Então, a aplicação nossa de exemplo, ela vai ajudar você a controlar essa leitura desses livros.

Então suponha que você quer ler algum livro, ou você já está lendo algum livro, ou você já leu algum livro.

Então essa aplicação de leitura, ela pega esse site que tem esses livros e organiza isso em três listas. As listas de leituras que você ainda deseja no futuro ler, a lista de leitura onde você está atualmente lendo, você marcar os livros que você está lendo e a lista dos livros que você já acabou de ler, já completou a sua leitura.

Então a aplicação no final das contas é um grande Crud. Um Crud de livros que tem apenas duas colunas a mais, onde você indica qual a lista que esse livro está e também você faz o upload da imagem de capa.

Então se você quiser, de repente, ah, estou pegando um livro aqui de orientação objetos, já estou lendo esse livro quando você marca ele mostra isso visualmente para você para te mostrar um pouco o progresso da sua leitura, tudo bem?

Então a nossa lista, nossa lista não, nossa aplicação inicial, ela é basicamente um Crud de livros que tem essa regra, o livro só pode estar nessas três listas: futuro, presente e passado, para ler lendo livros, ok?

Plus aí é o upload da imagem da capa, tem um códigozinho lá e vocês vão ver no controlador de livros.

Quais são as tecnologias que estão envolvidas nessa aplicação de exemplo como Framework Web, Aspnet MVC versão Core, como persistência: Entity Framework Core também. A parte de segurança tem o login, logout, registros de usuários, a gente está usando a Identity, apresentação das páginas HTML está sendo feita através do razor que é a engine padrão do Aspnet MVC, tudo bem pessoal?

Tudo isso vocês já aprenderam em cursos passados aqui na plataforma da Alura, tudo bem?

Então eu peguei isso tudo e coloquei numa aplicação pequenininha de exemplo. Como ela está organizada em termos de componente? Basicamente são dois grandes componentes, nós temos um cliente que é o navegador, uma coisa que você não ia estar acostumado a ver, navegador faz a requisição para uma aplicação que está no servidor, no caso nossa aplicação aí chamada WebApp e ela atende determinadas rotas, vocês vão ver lá que existem três controladores que estão estruturando essas rotas para entregar respostas HTML para esse cliente e essa aplicação Web é uma aplicação que faz tudo, ela tem todas as responsabilidades dessa aplicação especificamente.

Então ela faz apresentação, ela faz a persistência usando Entity, ela também trabalha a segurança, autoindicação, autorização e também trabalha com as regras de negócio, tudo sendo resolvido dentro da aplicação WebApp. Tudo bem?

O foco então dessa WebApp são clientes que conseguem rederizar HTML. Em geral navegadores, ok? Quem conseguir rederizar HTML, essa aplicação resolve, beleza?

Outra coisa também, o foco dessa aplicação é o usuário final esse cara que está aqui, é o cara que realmente quer controlar suas leituras. A única coisa que talvez tenha diferente aí não sei se vocês já viram, não sei se na plataforma Alura se também já teve isso. Deixa eu abrir o visual estúdios aqui para mostrar para vocês, que a nossa aplicação, a nossa solução, ela está organizada, deixa eu fazer um zoom aqui nessa parte, consigo fazer um zoom maior? Consigo.

Então, olha só, a minha solução ela está organizada, chamada Alura Web Api tem cinco projetos, ok? Tem o principal que é justamente essa aplicação Web, está chamando aqui de Web Api e tenho também quatro projetos que são biblioteca de classes.

Duas são para fazer persistência, uma para colocar as classes do modelo e um para colocar as classes de segurança, mas no final das contas gente, eu só tenho uma aplicação. Essa aplicação Web Api aqui, ela depende desses quatro projetos.

Então eu só separei, isolei esse código em projetos diferentes porque como vocês vão ver, a medida que o curso evoluir, eu vou criar novos projetos, que vão reutilizar esse código que está lá nessa biblioteca de classe. Então essa é uma diferençazinha que nós temos aí.

É isso.

Agora, para a gente passar para o próximo vídeo, eu quero deixar vocês para refletir a seguinte pergunta: essa nossa aplicação como eu falei, resolve tudo, beleza? Como eu faço agora para fazer com que essa aplicação se integre a outras aplicações? Por exemplo, se eu tiver uma outra aplicação que deseje utilizar as regras de negócio que estão definidas aqui nessa, como eu faço isso? Como integrar minha aplicação? Como tornar a minha aplicação ou essa ideia de lista de leitura de livros como eu pego essa ideia e faço ela ficar integrável?

Reflete um pouco sobre isso e a gente vai discutir essa ideia no próximo vídeo.

Sobre o curso APIs Rest com Asp.NET Core 2.1 Parte 1: Da app MVC para API

O curso APIs Rest com Asp.NET Core 2.1 Parte 1: Da app MVC para API possui 239 minutos de vídeos, em um total de 67 atividades. Gostou? Conheça nossos outros cursos de .NET em Programação, ou leia nossos artigos de Programação.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda .NET acessando integralmente esse e outros cursos, comece hoje!

  • 1150 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

Premium

  • 1150 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75
à vista R$900
Matricule-se

Premium Plus

  • 1150 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100
à vista R$1.200
Matricule-se

Max

  • 1150 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120
à vista R$1.440
Matricule-se
Procurando planos para empresas?
Acesso por 1 ano
Estude 24h/dia onde e quando quiser
Novos cursos toda semana