O que é API? O que é REST? O que é RESTful? Uma introdução para iniciantes em programação

22.45k views2948 WordsCopy TextShare
Serliv
#APIs #REST #webdev Olá pessoal, tudo bem? Nesse vídeo vou tentar explicar de maneira bem simples...
Video Transcript:
especialmente se você está começando agora no mercado de desenvolvimento web você já deve ter ouvido falar em siglas como api rest restful verbos http mas o que significa cada uma dessas coisas para tentar te ajudar nessa questão eu preparei esse vídeo onde eu elaborei 10 perguntas e eu mesmo vou responder tá então é isso aí pessoal se você quiser saber mais a respeito vamos lá se embora para o vídeo Olá pessoal tudo bom meu nome é Daniel e se você acabou de chegar você está no Canal serfrontend aonde eu falo basicamente de tecnologias para desenvolvimento
web Especialmente para quem está começando na carreira e também às vezes dou os meus pitacos sobre o mercado de trabalho bacana como eu falei nem tudo sobre esse vídeo eu vou responder a dez perguntas que tangem aí esse conceito de api rest E por aí vai sem enrolação já vamos lá direto para a primeira pergunta olha só o que é uma API o mato e nada mais é do que uma interface que permite a comunicação entre duas aplicações diferentes Resumindo quando eu tenho duas aplicações seja aplicação front-end backend do mesmo sistema ou até mesmo sistemas
diferentes eu consigo utilizar uma interface que fica no meio do caminho que vai fazer a comunicação Entre esses temas eu vou mostrar melhor agora nos slides alguns esquemas de como funciona essa comunicação reparação você vai entender melhores conceitua-la voltando para trás do meu computador então como eu falei do lado esquerdo eu tenho aqui o meu cliente né ou seja o browser do usuário final e do lado direito eu tenho o nosso servidor aqui eu tenho um servidor de arquivo EA que eu estou simulando um servidor de banco de dados tá então tradicional mente como é
que funciona essa comunicação né entre cliente e servidor no modelo mais tradicional aí de sistemas web tá o cliente faz uma requisição para um arquivo HTML que eu faço uma requisição lá para o meu servidor tá E aí o meu servidor ele vai receber esta requisição ele fica quando há algum tipo de requisição para algum arquivo dentro do Servidor ele vai receber essa requisição e vai tomar alguma ação se for um arquivo estático ele vai simplesmente mandar de volta aqui um arquivo HTML para o cliente se for um arquivo dinâmico ele vai fazer uma consulta
provavelmente para um banco de dados vai fazer aqui essa consulta e vai montar um HTML e devolver esse HTML conquistar para o cliente para o browser para o usuário final isso é transparente tá esse todo esse processo daqui ele é transparente usuário não precisa saber o que está por trás dos panos aqui do lado do servidor deixa que o servidor Se Vira lá mas o conceito principal que eu quero passar para vocês aqui é esta conexão aqui esta comunicação melhor dizendo tá o cliente sempre vai fazer um request uma requisição um pedido e o servidor
sempre vai devolver uma resposta ou um response se você quiser vir maiores detalhes como que foi esta comunicação cliente-servidor eu tenho outro vídeo aqui do canal onde eu explico um pouco melhor esse conceito Tá mas não precisa correr lá não eu vou deixar um link aqui na descrição e também no final desse vídeo eu vou deixar um cafezinho lá para você pular para aquele outro vídeo porque agora eu quero focar em up eu tô simplesmente dando um Panorama geral para a gente poder Labor alguns assuntos que eu vou mostrar mais para frente mas por enquanto
este procedimento de resposta e requisição é o suficiente para você entender bacana vamos lá novamente voltando para o meu se liga só então aqui eu tenho o modelo tradicional e agora eu vou mostrar para vocês como que funciona uma API ta basicamente é a mesma coisa eu tenho novamente eu tenho requests e tenho respostas mas eu não vou receber agora HTML Quando eu falar da telha eu tô dizendo HTML imagens já descritos estáticos E por aí vai tá eu vou pedir sempre dados Tá eu vou pedir dados e normalmente esses dados são Geisa Você também
é um XML por exemplo tá normalmente a gente vai trabalhar com então o cliente vai fazer uma requisição para alguns dados o meu servidor vai receber esta requisição provavelmente vai fazer uma consulta para um banco de dados e vai mandar de volta para o cliente esses dados normalmente dados Jason tá se você não sabe o que é jeito eu vou mostrar daqui a pouquinho lá na frente ainda nesse vídeo Se liga só mas por enquanto saiba que eu posso ter numa mesma aplicação eu posso ter um servidor de arquivos um banco de dados e também
a parte do front end Ou seja a minha aplicação compreende tanto na parte do front end quanto no servidor que vai fazer o envio desses dados para o cliente tá Além disso eu tenho um outro exemplo olha só eu tenho um exemplo quando a gente tem uma aplicação diferente Então imagina imagina que o sistema por exemplo do kit Ruby ele fornece o mar para desenvolvedores tá então eu como desenvolvedor eu posso montar um sistema utilizando as informações que estão lá no B por exemplo tá agora imagina eu não tenho acesso ao banco de dados do
B eu não posso ter acesso Isso é uma baita problema de segurança tá então próprio kit Rubi fornece um mecanismo que ele consegue de maneira segura disponibilizar esses dados para quem quiser utilizar os desenvolvedores e desenvolvedora tá então vamos lá novamente voltando para o meus slides liga só Então imagina que aqui eu tenho uma aplicação do kit home que ela disponibiliza uma Interface para que possa transportar dados para Outras aplicações por exemplo o meu próprio site então o kit Rubi disponibilizando é sap eu posso ter acesso aos dados olha só os dados aqui no caso
do Jason de maneira segura sem comprometer lá do Servidor lá do kit Rubi tá eu tô colocando aqui o b mas existem diversas Outras aplicações por exemplo o YouTube fornece uma p e o Twitter o PayPal até mesmo acredito que o PagSeguro também deve fornecer uma feia ou até mesmo audeme aonde eu tenho os meus cursos publicados também Me fornece uma peikko eu posso consumir Aliás se você quiser saber mais a respeito dos meus cursos vou fazer o meu Jabá agora eu vou deixar o link na descrição de uma conferida lá se você quiser legal
Lembrando que adquirir esse curso pelos links que eu vou deixar aqui embaixo o curso sai mais barato do que um fast-food por exemplo e não vai aumentar o seu colesterol e aqui eu tenho simplesmente um exemplo da página olha só deixa eu colocar aqui olha lá toque ponto b hub.com barra PT é uma pá de gente já vai entender o que que é essa sigla para você verificar que isso é público tá os dados são públicos é homem o que você precisa ter uma chave de segurança Mas saiba que isso tudo é público a gente
pode utilizar numa boa Legal pessoal vamos lá para a próxima pergunta se liga só o que é o http http nada mais é do protocolo responsável por permitir essa comunicação entre máquinas diferente então normalmente cliente e servidor então imagine o seguinte Existem várias máquinas existem vários sistemas operacionais várias razões e por aí vai tá E também existem vários servidores Eu tenho um servidor Linux servidor Windows E por aí vai como que é possível que esta comunicação entre máquinas diferentes servidores diferentes máquinas de clientes diferentes como que é possível efetuar essa comunicação sempre de maneira efetiva
por que existe um protocolo de Comunicação tá que é um protocolo de comunicação é como se fosse um padrão de comunicação Tão todo mundo falando a mesma língua todo mundo Consegues entender numa boa basicamente é isso viu http é um protocolo de transferência de hipertexto protocolo que permite essa comunicação então só para a gente relembrar aqui eu tenho novamente um esquema de como que funciona esta comunicação cliente-servidor esta comunicação daqui ela só é possível por conta do protocolo de transferência de hipertexto o famoso http hypertext transfer protocol bacana pessoal vamos lá para o próximo slide
o que são verbos http verbos http também conhecidos como métodos http são tipos de comunicação com o servidor quando a gente abre uma página do nosso browser e digita o endereço o browser ele é capaz de fazer requisições get tá então ele vai fazer comunicação com servidor utilizando o verbo get ou seja ele quer obter informação quando você abre lá uma página HTML você está querendo obter um código HTML para que o Brasil possa renderizar aquela página certa mas existem outras formas de comunicação Por exemplo quando você faz um cadastro na preenchendo um formulário esse
cadastro é feito utilizando o verbo post tá ou seja estou enviando estou submetendo dados para os servidores não querendo receber algo em troca Tá mas existem outros verbos também existem vários verbos na verdade é que eu vou colocar os mais comuns então por exemplo a gente tem o verbo Bete que é para obter informações a gente tem o verbo post que é para enviar dados por exemplo fazer um novo cadastro mas eu também tenho dois verbos que vão me permitir atualizar meus dados então o verbo é para atualizar os dados quando eu preciso passar todas
as informações ele vai fazer um replace e das informações que estão no servidor para as informações que eu estou enviando para o server E também temos o método Pet que ele vai também atualizar os dados porém ele atualiza os dados de maneira parcial eu passo um pequeno pedaço das informações e ele consegue simplesmente trocar as informações que estou passando o que eu não tiver passando ele vai deixar em tacto do jeito que estava temos o verbo de Elite já diz tudo e temos o verbo óculos que permite acesso de domínios diferente ele vai fazer algumas
verificações para permitir aí quando um sistema está querendo se comunicar com outro bacana vamos lá para a próxima pergunta para que serve o status code vão pessoal status code nada mais é do que um código para informar o cliente Como que é o status daquela requisição Então imagina o seguinte o cliente faz uma requisição por exemplo uma requisição post para fazer um novo cadastro tá agora imagina que esta requisição post o cliente passou dados Inválidos tá Então como que o cliente vai saber se aquele cadastro foi efetuado com sucesso ou não é sempre por conta
do status code a resposta que o servidor vai mandar de volta para o cliente vai ter um código que vai dizer qual que é o estado se teve Sucesso teve eu se não foi atualizado ou se a requisição foi mal formatada como eu devo exemplo Então no próximo slide eu tenho também os status code mais conhecidos tem ali o 200 para quando tiver sucesso 201 para quando o cadastro foi feito com sucesso tenho 204 quando não tem conteúdo de retorno e tem a gente tem uma série de status pois não são só esses tem uma
lista com muitos status code cada código Vai representar alguma coisa Vai representar um status de como que se deu essa requisição você sempre vai precisar olhar na internet fazer uma busca na internet para mandar o status code mais apropriado Tá mas normalmente Esses são os mais comuns 200 404 quando não encontra 500 quando algum erro no servidor sem grandes problemas aqui vamos lá próxima pergunta o que são rotas bom quando a gente fala de Up entender rotas é tranquilo rotas nada mais são do que o URL tá simplificando é só isso tá bom pessoal então
vamos lá as rotas São endereços para alcançar um único tá então imagine o seguinte aqui eu tenho um recurso um Hilux ponta HTML tá quando eu passo o caminho completo Eu estou passando o endereço para encontrar esse endereço HTML daqui tá então este caminho daqui ele pode ser entendido como rota tá E aqui eu tenho o domínio nessa parte que vem antes da Barra é o domínio poderia ser qualquer domínio aqui tô colocando ser frutinha de.com para fazer o Jabá do meu site legal mas quando eu estou abrindo uma página HTML eu passo o endereço
quando estou acessando uma API Eu não falo passo o endereço eu passo mal RL eu falo não vou passar uma rota ou um endpoint é a mesma coisa tá tranquilo isso vamos lá para o próximo slide O que é Jason bom como eu já dei o spoiler no começo desse vídeo Jason é uma maneira de transportar dados na web tá normalmente cliente Servidor ou servidor para o se parece muito com o objeto java script possui algumas regras próprias como a gente só pode ter aspas duplas não posso ter comentários em arquivos Jason não posso ter
vírgula após o último elemento de um Array e etc Existem algumas regras aí que eu preciso obedecer tá E no próximo slide Eu tenho simplesmente um exemplo de um dia isso olha só nada mais é aqui por exemplo do que um Array de objetos tá quando eu falei olha só eu não posso ter aspas simples eu preciso ter aspas duplas no último elemento eu não posso ter uma vírgula se eu tiver uma vírgula aqui o meu Deus ele não será um deles um válido E por aí vai tá Existem algumas regras que eu preciso obedecer
vamos lá para a próxima pergunta aqui agora está ficando mais interessante o que é uma rest em uma API rest nada mais é do que um conjunto de restrições para criação de apis a gente não tem só esse padrão né esse modelo essa que te tura melhor dizendo para criar PIS a gente também outras abordagens Tá mas é quando eu comecei a trabalhar eu já comecei a trabalhar com o s porque eu sou ele é um pouquinho mais antigo Bacana Então o resto ele é simplesmente um conjunto de restrições que eu utilizo de forma padronizada
o protocolo http para criar as minhas apis as minhas interfaces né que vão permitir a comunicação entre sistema tá ou seja para criar uma API rest com esse padrão rest eu preciso utilizar de forma restrita o que o http nos fornece como status code como eu já falei eu preciso utilizar os verbos corretos ou seja o verbo get post Patch por aí vai e eu também tenho que respeitar um padrão para o r ou seja as rotas os endpoints tá existe um padrão que eu preciso obedecer dar muito bem indo para frente o que é
uma rest foi bom a gente já viu que é uma peste mas o que é uma peste uma pergunta nada mais é do que eu tenho uma pirest que abrange quatro níveis de conformidade com arquitetura rest tá repara que toda hora eu tô colocando uma palavrinha Amarelo diferente eu já falei de arquitetura rest já falei de padrão o nome correto mesmo seria arquitetura se você quiser chamar de padrão essa também não é um crime não é o fim do mundo tá mas para que eu tenha uma API considerada rest significa que eu preciso obedecer quatro
níveis de ganhos assim de especificações rest tá isso daqui é um pouco mais completo Um pouco mais abrangente você não precisa entender tudo agora tá se você está começando você não precisa entender tudo agora mas eu garanto para você que a maioria das apis que são rest não são consideradas e na verdade eu acabei de responder a próxima pergunta sem querer uma API rest é sempre assim como eu nem sempre como a quatro níveis de conformidade que precisam ser seguidos à risca para que uma perest seja considerada rest nem sempre você vai encontrar apis rest
que obedecem a esses quatro níveis e tudo bem não tem nenhum problema tá muitas vezes a gente não precisa que a nossa up seja para ser uma que atenda a nossa necessidade bacana e por último a próxima pergunta como que eu posso testar a minha up basicamente a gente tem dois programas que são os mais utilizados eu tenho o post que é o que eu pessoalmente utilizo e eu tenho um outro programa que é um pouquinho mais novo que se chama e some Ah tá eu conheço esse programa só de vista nunca trabalhei para valer
com ele porque eu me dou muito bem com pouco eu acabo utilizando conheço muitas pessoas que utilizam o posto Mas também conheço pessoas que migraram para o isso eu passo Eu particularmente não vi ainda necessidade de fazer essa migração continua oposto de sem maiores problemas Espero que você tenha gostado do vídeo Se gostou peço por favor que considera deixar o like para mim e se não for inscrito Peço também que considere se inscrever no canal ativar o Sininho para receber notificações de vídeos novos se você conhece alguém que está querendo ingressar no mercado de trabalho
eu agradeceria muito se você puder Compartilhar esse vídeo isso vai me ajudar demais e além disso a gente pode ajudar outras pessoas também isso se você achou que esse conteúdo foi válido de alguma forma fechada o pessoal um forte abraço até o próximo vídeo até lá
Copyright © 2024. Made with ♥ in London by YTScribe.com