"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como as APIs funcionam nos bastidores

Como as APIs funcionam nos bastidores

Publicado em 31/08/2024
Navegar:962

APIs (Interfaces de Programação de Aplicativos) são fundamentais para o desenvolvimento de software moderno, permitindo que diferentes sistemas se comuniquem entre si. Mas o que acontece quando você atinge um endpoint de API? Como os dados são transferidos do aplicativo cliente para o servidor e vice-versa? Este artigo irá desmistificar esses processos, detalhando passo a passo a jornada de uma solicitação de API, com a ajuda de recursos visuais e explicações adicionais.

1. O cliente faz uma solicitação

Imagine que você está construindo um aplicativo da web que exibe dados meteorológicos. Quando um usuário clica em um botão para ver o clima atual, seu aplicativo envia uma solicitação para um endpoint de API, como https://api.weather.com/current.

O que acontece aqui?

  • Solicitação HTTP: O cliente (seu aplicativo) cria uma solicitação HTTP, especificando o método (por exemplo, GET, POST), o URL do endpoint e quaisquer cabeçalhos necessários (como Authorization ou Content-Type).
  • Payload: se for uma solicitação POST, pode incluir uma carga útil, como um objeto JSON com parâmetros (por exemplo, { "city": "New York" }).

Essa solicitação HTTP é então enviada pela Internet para o servidor que hospeda a API.

How APIs Work Under the Hood

2. Pesquisa de DNS: Encontrando o servidor

Antes que sua solicitação chegue ao servidor, ele deve primeiro saber para onde ir. É aqui que entra o Sistema de Nomes de Domínio (DNS).

DNS Lookup: O navegador ou aplicativo cliente pega o domínio (por exemplo, api.weather.com) e consulta um servidor DNS para encontrar seu endereço IP correspondente. Este endereço IP é a localização real do servidor na internet.

How APIs Work Under the Hood

3. Estabelecendo uma conexão

Agora que o cliente sabe onde está o servidor, ele precisa estabelecer uma conexão.

TCP Handshake: O cliente e o servidor estabelecem uma conexão usando o Transmission Control Protocol (TCP). Isso envolve um processo de três etapas conhecido como handshake TCP:

  1. SYN: O cliente envia uma solicitação de sincronização (SYN) ao servidor.
  2. SYN-ACK: O servidor reconhece esta solicitação e responde com SYN-ACK.
  3. ACK: O cliente reconhece a resposta do servidor, completando o handshake.

Depois que esse handshake for concluído, a conexão será estabelecida e os dados poderão ser trocados.

How APIs Work Under the Hood

4. Servidor recebe a solicitação

Com a conexão estabelecida, a solicitação HTTP é transmitida ao servidor.

Processamento no lado do servidor:

  • Roteamento: O servidor recebe a solicitação e a encaminha para o manipulador apropriado com base no endpoint (por exemplo, /current em https://api.weather.com/current). Isso pode envolver a correspondência do padrão de URL com um controlador ou função específica.
  • Lógica do controlador: O controlador do servidor processa a solicitação. Isso pode envolver consultar um banco de dados para recuperar dados, realizar cálculos ou transformações de dados ou chamar outros serviços internos para buscar informações adicionais.
  • Autenticação e Autorização: Se o endpoint exigir autenticação, o servidor verificará as credenciais do cliente. Por exemplo, se a solicitação incluir uma chave API ou token de acesso, o servidor verifica sua validade e garante que o cliente tenha as permissões necessárias para acessar o recurso solicitado.

5. Preparação de resposta

Depois de processar a solicitação, o servidor prepara uma resposta.

Objeto de resposta: O servidor cria um objeto de resposta HTTP, incluindo:

  • Código de status: Indica o resultado da solicitação (por exemplo, 200 OK, 404 Não encontrado, 500 Erro interno do servidor).
  • Cabeçalhos: forneça metadados sobre a resposta, como Content-Type (por exemplo, application/json) ou Set-Cookie.
  • Body: Contém os dados solicitados pelo cliente, geralmente em formato JSON (por exemplo, { "temperature": "72°F", "condition": "Sunny" }).

6. Enviando a resposta de volta

O servidor envia a resposta HTTP de volta ao cliente através da conexão estabelecida.

Transmissão de dados: essa resposta viaja de volta pela Internet, passando potencialmente por vários roteadores e gateways. Finalmente chega ao cliente, que processa a resposta.

How APIs Work Under the Hood

7. Cliente recebe e processa a resposta

Assim que o cliente receber a resposta, ele poderá processar os dados e atualizar a IU.

Atualização da interface do usuário: Em nosso aplicativo de clima, o cliente pega os dados de temperatura da resposta e atualiza a exibição para mostrar o clima atual.

Tratamento de erros: se algo der errado (por exemplo, o servidor retornou um código de status 404 ou 500), o cliente poderá mostrar uma mensagem de erro ou tentar novamente a solicitação.

8. Terminação da conexão

Após a conclusão da troca de dados, a conexão entre o cliente e o servidor é encerrada.

Término da conexão TCP: Semelhante ao handshake, a conexão é encerrada usando um processo de quatro etapas:

  1. FIN: O cliente envia uma solicitação de finalização (FIN).
  2. ACK: O servidor reconhece a solicitação FIN.
  3. FIN: O servidor envia sua própria solicitação FIN.
  4. ACK: O cliente reconhece a solicitação FIN do servidor.

Esse desligamento ordenado garante que ambos os lados terminaram de transmitir dados.

How APIs Work Under the Hood

Solução de problemas e problemas comuns

Embora o processo de solicitação-resposta da API possa parecer simples, vários problemas comuns podem surgir, como:

  • Erros de rede: Tempo limite de conexão, perda de pacotes ou outros problemas relacionados à rede podem impedir que a solicitação chegue ao servidor ou que a resposta chegue ao cliente.
  • Falhas de autenticação/autorização: chaves de API, tokens ou permissões incorretas ou expiradas podem levar a erros de autenticação ou autorização.
  • Erros do lado do servidor: O servidor pode encontrar problemas como falhas no banco de dados, indisponibilidade de recursos ou bugs na lógica do lado do servidor, resultando em códigos de status 5xx.
  • Erros do lado do cliente: o cliente pode fazer solicitações inválidas, como fornecer parâmetros incorretos ou tentar acessar recursos inexistentes, levando a códigos de status 4xx.

Para solucionar esses problemas, você pode usar ferramentas como farejadores de rede, ferramentas de desenvolvedor de navegador e logs do lado do servidor para investigar a causa raiz do problema e tomar as medidas apropriadas para resolvê-lo.

Conclusão

Entender como uma API funciona nos bastidores ajuda você a apreciar as complexidades envolvidas até mesmo em uma simples solicitação HTTP. De pesquisas de DNS a handshakes de TCP, e do processamento no lado do servidor ao tratamento no lado do cliente, muita coisa acontece toda vez que você atinge um endpoint de API.

Como desenvolvedor, ter um conhecimento sólido desses conceitos não apenas o tornará um programador melhor, mas também o ajudará a depurar problemas de maneira mais eficaz. Portanto, da próxima vez que você trabalhar com uma API, lembre-se da jornada que seus dados percorrem e do processo complexo que torna tudo isso possível.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/shanu001x/how-apis-work-under-the-hood-68m?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3