O que é uma API REST
E ai tudo bem? Hoje você vai saber absolutamente tudo o que você precisa a respeito de API`s REST
Pra quem acabou de começar a programar, vários termos podem assustar, e tenho certeza que um dos que mais aparecem na nossa vida, é a tal API REST.
Então eu vou separar em alguns tópicos para organizar melhor os pensamentos e conseguir te guiar junto comigo na explicação. Vamos lá…
- O que é API
- O que é REST
- Verbos HTTPS
- Status Code
- Porque e quando utilizar API REST
- Formatos de API`s
- Conclusão
Bem, dado os nossos tópicos, vamos de fato às explicações, sem firulas!
O que é API
API significa Application Programming Interface, que em português significa Interface de Programação de Aplicações.
Beleza Bruno, mas e daí? Calma jovem, vamos destrinchar isso um pouco mais…
API nada mais é do que um serviço disponível para que outros serviços consigam consumir de forma programática. Isto é, utilizar os recursos desse serviço, no meio do seu próprio código.
De modo geral, é uma interface que permite a comunicação entre dois programas.
O que é REST
Quando a gente está falando de desenvolvimento web, a maior parte das API`s utilizam o protocolo HTTP para disponibilizar o serviço. o protocolo HTTP é o mesmo que utilizamos para acessar os sites em nosso browser.
Acontece que só com esse protocolo seria muito amplo, quando se trata de um software consumir outro software. Imagine o seguinte cenário:
- Time 01: está desenvolvendo uma API de consulta de CEP, neste time há 4 desenvolvedores
- Time 02: vai consultar a API de CEP via HTTP do Time 01
Se só houvesse o protocolo http entre os dois, as padronizações entre os dois times seriam extremamente perdidas, e cada integração exigiria que os times tivessem contato para poder combinar.
E é aí que entra o REST. O REST é um padrão semântico para requisições HTTP.
Ao consumir um serviço utilizando uma API REST nós utilizamos requisições com verbos que ditam exatamente o que nossa requisição quer fazer. Por exemplo:
- GET https://api.github.com/users/bgabraga2
- POST https://api.github.com/users/bgabraga2
- DELETE https://api.github.com/users/bgabraga2
Verbos HTTP
Os verbos mais comuns e que a gente mais utiliza no dia a dia são o GET e o POST, mas existem outros que ao utilizar sua API se torna cada vez mais padronizada e semântica. Deixando mais fácil para quem vai consumir. Veja quais são os principais verbos disponíveis no REST, que nós usamos no dia a dia…
- GET: É quando você quer obter alguma lista ou informação. Exemplo: Obter a lista de usuário
- POST: É quando você precisa criar algum dado. Exemplo: Criar um usuário
- PUT: É quando precisamos alterar todos os dados. Exemplo: Alterar os dados de um usuário
- PATCH: É quando precisamos alterar parcialmente dados. Exemplo: Alterar apenas o e-mail do usuário
- DELETE: É quando precisamos excluir algum dado. Exemplo: Excluir um usuário
Status Code
Como comentei no início REST é uma forma semântica de transferir dados, então a cada requisição existe um código que a API retorna para informar quem fez a requisição, qual foi o retorno dela.
Existem códigos para todos os tipos de “eventos” dentro de uma API, veja abaixo quais são os tipos de códigos possíveis em uma API REST
- 1xx Informativo: Comunica alguma informação:
- Exemplo: Código 102 Processing – Este código indica que o servidor recebeu e está processando a requisição, mas nenhuma resposta está disponível ainda.
- 2xx Sucesso: Indica que o servidor aceitou a requisição do cliente
- Exemplo: Código 200 OK – Esta requisição foi bem sucedida. O significado do sucesso varia de acordo com o método HTTP:
- 3xx Redirection: Comunica que o servidor deve fazer um redirecionamento
- Exemplo: Código 301 Moved Permanently – Esse código de resposta significa que a URI do recurso requerido mudou. Provavelmente, a nova URI será especificada na resposta.
- 4xx Client Error: Comunica que o cliente fez a requisição da forma errada
- Exemplo: Código 401 Unauthorized – O cliente deve se autenticar para obter a resposta solicitada.
- 5xx Server Error: Comunica que ao tentar processar a requisição, o servidor teve algum problema que retornou um erro
- Exemplo: Código 501 Not Implemented – O método da requisição não é suportado pelo servidor e não pode ser manipulado
Bem esses são alguns exemplos, mas você pode ver aqui a lista completa dos códigos e o momento de utiliza-los.
Porque e quando utilizar uma API REST
Nós utilizamos uma API REST sempre que precisamos consumir algum recurso que extrapola o limite da nossa aplicação. Como por exemplo, buscar os dados de um endereço através do CEP, neste caso utilizamos uma API dos correios onde passamos o número do CEP e ele nos retorna exatamente qual o endereço solicitado.
No desenvolvimento web moderno, as novas tecnologias que tem aparecido, estão cada vez mais amplas em termos de dispositivos, portanto a utilização de API`s se tornou basicamente nosso dia a dia.
Muitos sites hoje em dia utilizam frameworks e bibliotecas como VueJS e ReactJS para serem feitos. E quando geramos o pacote para produção, nós não temos nada mais do que páginas HTML, CSS e Javascript!
“- Então como nós conseguimos conectar com o banco de dados”, você deve estar se perguntando… Pois bem, esse tipo de arquitetura de sites utilizam API`s para comunicação com o Back-end.
Então esqueça a ideia de renderizar o back-end junto com o front-end, assim como fazíamos no PHP ou mesmo no C#.Net.
E é por isso que hoje falamos tanto em API`s REST.
Formatos de API
Existem dois principais formatos de dados que uma API utiliza na hora de expor os dados, o XML e o JSON.
XML
O formato XML é um formato mais antigo e muito mais verboso, isto é, é necessário escrever muito mais texto para poder representar os dados, porém funciona muito bem com tecnologias Microsoft, como por exemplo C#.Net.
Veja o exemplo:
<usuario>
<name>Bruno Braga</name>
<age>29</age>
</usuario>
JSON
O JSON talvez seja o modelo mais usado nos dias de hoje. JSON significa JavaScript Object Notation, ou seja, um formato textual para estruturar um objeto. Mas não se engane, não é porque ele tem no nome JavaScript que ele só funciona nessa linguagem, todas as linguagens atuais já tem suporte a esse modelo de notação.
Veja o exemplo:
{
"name":"Bruno Braga",
"age":29
}
Bem, legal você entendeu que existem esses dois formatos de API, mas deve estar pensando “- Qual é melhor?”. Então… Não existe melhor, existe o que você precisa utilizar. Eu particularmente tenho muito mais facilidade em trabalhar com JSON, mas conheço diversos colegas que tem muito mais facilidade com XML.
O ideal é entender como cada um dos formatos funciona, e quando você precisar consumir alguma API que esteja com qualquer um dos dois formatos, você vai saber o que fazer.
Conclusão
Bem, hoje você aprendeu tudo o que precisa saber para bater um papo sobre API REST com seus colegas e até se te perguntarem sobre isso numa entrevista de emprego.
Um ponto importante que você aprendeu hoje e que muitos desenvolvedores que trabalham com API REST não se importam, são com os verbos, já trabalhei com inúmeras API`s que tudo era POST e GET, e não se importava para toda a semântica, muito menos para os códigos de erro.
Além disso aprendeu que grande parte dos sites hoje em dia são feitos de forma separadas, o front-end do back-end, e se comunicam através de API.
E pra finalizar, aprendeu os principais formatos que as API`s são desenvolvidas.
Espero que este post tenha te proporcionado algum conhecimento a mais, se tiver dúvidas deixe nos comentários… Até a próxima, e tchau! 😉
Muito boa seu conteúdo me ajudou muito
Muito obrigado Cândido!
Estudo programação há uns 2 anos e já trabalhei com API Rest, e outras API’s, sempre pesquisava sobre a definição delas, até hoje o conteúdo explicativo na internet é confuso para um inocente mas a sua explicação é totalmente legível e fácil de entender. Vc tem o dom da didática, o dom pra ensinar. Parabéns pelo trabalho!
Muito obrigado Junior! Fico feliz que tenha curtido o conteúdo.
Iniciante***