[pt-BR] Será que isso é o básico? [parte II]
Tags: programming, beginners, motivation
Published: 2022-08-17 04:07:00

Faaaala galera, todos bem? Espero que sim! O texto de hoje vai ser um pouco mais extenso... 
No post [anterior](https://dev.to/eguadorodrigo/sera-que-isso-e-o-basico-parte-i-8pi) a gente comentou sobre quem é você no rolê da firma, pontuando alguns dos perfis existentes dentro do desenvolvimento de software...

![Imagem mostrando traços em preto e branco que desenham um rosto com expressões de reprovação](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0ogkvkdf7uc2i7g13cyr.png)
"Ah Rodrigo, mas não tem só isso..." 
Verdade! eu disse que foi um apanhado bem específico da área onde eu atuo que é o desenvolvimento de software; mas existem várias descrições dentro da área de TI, do desenvolvimento ou fora dele, inclusive pra designar um mesmo cargo (haja sigla, em português, em inglês, uns bem auto descritivo, outros nem tanto).
Mas ainda falando do texto anterior eu dei introdução a uma palavrinha - e vou puxar a sardinha pro meu universo, o Backend - que acho que é legal a gente detalhar um pouco hoje:

- API - Application Programming Interface - O que é, como se reproduzem, o que comem? Calma... 


![Imagem com fundo de uma mesa de madeira, com vários dispositivos como mouse, celular e computador. Acima disso vários círculos em branco ligados uns aos outros e no centro um círculo maior com o texto API nele](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mc6zkwlims9xz9z5uecx.jpeg)
A interface de programação de aplicação (API do inglês) nada mais é do que uma maneira que se criou de permitir a comunicação entre sistemas, usando variados tipos de protocolos (galera de redes e de circuitos tão ligados, né?) , isso vem bastante herdado do conceito de redes de computadores, protocolos de comunicação, envio/recebimento de pacotes e como cada unidade computacional pode ser integrada a um conceito maior e construir um novo conjunto de serviços. 
Uma das primeiras interfaces visuais, foram as telas verdes com cursores de entrada de dados que piscavam numa tela que lembrava muito as TVs  de cubo que a gente ainda vê por ai, eu já tive uma dessas TVs e vocês? Hahaha

![#pratodosverem imagem de um dos primeiros monitores criados, chamados monocromáticos. A imagem mostra um equipamento que sugere ser um computador pessoal, variando entre a cor branca e amarelo denotando o tempo de vida do equipamento é sua tela em letras verdes](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dkzeikrgkwcfccvyolro.jpeg)

E com a evolução dos conceitos dentro da computação, as APIs hoje são representações abstratas de sistemas que produzem algum tipo de interface (meio que permite que execuções internas possam ser consumidas externamente) que perpetuam o conceito de envio/recebimento mas agora não apenas dos pacotes e não apenas por uma rede privada, mas agora também pela imensidão da Internet. Essa troca segue outro, o conceito de cliente/servidor, onde o que chamamos de _cliente_, ou seja, outro sistema ou outra API que se deseja se comunicar com quem serve/disponibiliza a informação _o servidor_. Essa comunicação tem por objetivo suprir um dado fluxo de negocio. 

![Imagem de fundo branco mostrando mulher com feições de confusão](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tyyq00cu6iz66nhgj650.jpeg)
"Caramba Rodrigo, buguei aqui, como assim?" 

Vamos a um exemplo prático: Eu estou desenvolvendo uma API que precisa ter em uma das rotinas os dados de endereço dado um CEP qualquer. Neste instante eu posso fazer uma integração a outra API, por exemplo, a dos correios que possui detalhamento do endereço passando como parâmetro o CEP do lugar, neste momento eu posso criar esse mecanismo de integração entre as interfaces do cliente/servidor, pegando o CEP e usando para consumir a API dos correios e receber como resposta os detalhes do dado, como rua, cidade, estado, se a rua é uma avenida ou uma travessa... 
![Imagem em fundo branco que exibe figuras geométricas ligadas entre si. A primeira representa um site ou sistema que está representado por um retângulo com um texto ao centro escrito "Frontend". Seguido de outro retângulo com o texto ao centro escrito "Minha API". Abaixo desses dois tem um pentágono que ao centro está escrito "API Correios"](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l07202urxe7gukjxrfms.png)

Deu pra entender melhor o conceito? 
Como esse tópico é um pouco mais extenso, pra fazermos um corte pra uma parte III, fica aqui algumas opções de protocolos de APIs que existem hoje por aí... 

- API SOAP
- API REST
- API WEBSOCKET
- API RPC

Na próxima podemos detalhar cada uma delas, beleza, que tal...? E você gostou desse conteúdo? Que tipos de APIs você já trabalhou, quais os desafios que encontrou, me conta aí nos comentários?!
Até a próxima pessoal!