{"id":42537,"date":"2026-04-01T20:22:12","date_gmt":"2026-04-01T20:22:12","guid":{"rendered":"https:\/\/floppydata.com\/sem-categoria\/o-que-e-uma-api-e-como-ela-funciona\/"},"modified":"2026-04-01T20:22:12","modified_gmt":"2026-04-01T20:22:12","slug":"api-for-dummies","status":"publish","type":"post","link":"https:\/\/floppydata.com\/pt-br\/blog\/api-for-dummies\/","title":{"rendered":"O que \u00e9 uma API e como ela funciona?"},"content":{"rendered":"<p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone size-full wp-image-42482\" src=\"https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/API-for-Dummies-What-is-an-API-How-Do-They-Work.jpg\" alt=\"API para leigos: O que \u00e9 uma API e como ela funciona?\" width=\"1538\" height=\"980\" srcset=\"https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/API-for-Dummies-What-is-an-API-How-Do-They-Work.jpg 1538w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/API-for-Dummies-What-is-an-API-How-Do-They-Work-300x191.jpg 300w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/API-for-Dummies-What-is-an-API-How-Do-They-Work-1024x652.jpg 1024w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/API-for-Dummies-What-is-an-API-How-Do-They-Work-768x489.jpg 768w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/API-for-Dummies-What-is-an-API-How-Do-They-Work-1536x979.jpg 1536w\" sizes=\"(max-width: 1538px) 100vw, 1538px\" \/><\/p>\n<p>Voc\u00ea j\u00e1 se perguntou como os aplicativos e os sites funcionam juntos sem problemas? Bem, \u00e9 aqui que o poder das APIs entra em a\u00e7\u00e3o. A forma completa de API \u00e9 Interface de Programa\u00e7\u00e3o de Aplicativos. Em palavras mais simples, podemos defini-la como uma ferramenta que ajuda diferentes aplicativos a se comunicarem entre si sem interferir nos processos de back-end. Por exemplo, se voc\u00ea estiver usando seu aplicativo de viagens, ele n\u00e3o mostrar\u00e1 apenas os pre\u00e7os dos voos. Nesse momento, ele est\u00e1 usando outro servidor com a ajuda de uma API para buscar dados para voc\u00ea. Outro exemplo \u00e9 quando voc\u00ea tenta fazer login na sua conta do Gmail usando outro dispositivo. Esse processo envolve diferentes APIs trabalhando em segundo plano.       <\/p>\n<p>Se voc\u00ea est\u00e1 procurando um guia de API f\u00e1cil para leigos, este guia \u00e9 para voc\u00ea!<\/p>\n<h2><strong>O que \u00e9 uma API?  <\/strong><\/h2>\n<p>Antes de passar para o <strong>tutorial de API para iniciantes<\/strong>, vamos discutir brevemente a quest\u00e3o de   <strong>&#8220;O que \u00e9 uma API?&#8221;<\/strong><\/p>\n<p>Uma interface de programa\u00e7\u00e3o de aplicativos pode ser definida como um conjunto de regras que funciona como um intermedi\u00e1rio entre dois ou mais aplicativos. Suponha que voc\u00ea, como cliente, queira comprar carne bovina na loja, que ser\u00e1 adquirida na fazenda. A loja, nesse caso, n\u00e3o precisa conhecer o funcionamento interno da fazenda para entregar carne fresca ao cliente. O mesmo acontece com a API, que funciona como um intermedi\u00e1rio para simplificar o processo e melhorar a comunica\u00e7\u00e3o entre dois ou mais softwares. Atualmente, os aplicativos s\u00e3o eficientes porque a API funciona em segundo plano. Por exemplo, se voc\u00ea quiser verificar o clima ou reservar um t\u00e1xi com a ajuda do seu smartphone, a API funciona como um intermedi\u00e1rio para buscar os dados entre duas ou mais plataformas.     <\/p>\n<p>Aqui est\u00e3o alguns termos associados aos <strong>fundamentos da API<\/strong>, que s\u00e3o cruciais para que voc\u00ea entenda como a API funciona:<\/p>\n<ul>\n<li><strong>Chamada de API:<\/strong> Uma chamada de API tamb\u00e9m \u00e9 conhecida como solicita\u00e7\u00e3o de API. \u00c9 uma mensagem enviada a um servidor para permitir que uma API execute uma a\u00e7\u00e3o. \u00c9 a chamada de API que inicia uma a\u00e7\u00e3o solicitada por um cliente em um site ou aplicativo.  <\/li>\n<li><strong>Chave de API:<\/strong> Uma chave de API \u00e9 de grande import\u00e2ncia quando se trata de autenticar uma chamada de API. Em outras palavras, ela \u00e9 usada para identificar um aplicativo antes que a comunica\u00e7\u00e3o seja estabelecida para garantir a seguran\u00e7a dos dados. <\/li>\n<li><strong>Gateway de API:<\/strong> Os gateways de API s\u00e3o usados para processar informa\u00e7\u00f5es do lado do cliente para o lado do servidor. \u00c9 por meio dos gateways de API que as solicita\u00e7\u00f5es s\u00e3o processadas e encaminhadas a v\u00e1rios servidores para gerar uma resposta ao cliente. Portanto, os gateways de API ajudam a coordenar as a\u00e7\u00f5es para garantir que as solicita\u00e7\u00f5es cheguem aos servidores certos e que uma resposta seja enviada ao cliente.  <\/li>\n<\/ul>\n<h2><strong>Como funciona uma API?<\/strong><\/h2>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-42463\" src=\"https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/image1-4.png\" alt=\"Como funciona uma API\" width=\"1999\" height=\"1116\" srcset=\"https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/image1-4.png 1999w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/image1-4-300x167.png 300w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/image1-4-1024x572.png 1024w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/image1-4-768x429.png 768w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/image1-4-1536x858.png 1536w\" sizes=\"(max-width: 1999px) 100vw, 1999px\" \/><\/p>\n<p>Nesta se\u00e7\u00e3o, responderemos \u00e0 pergunta mais frequente: <strong>como funcionam as APIs<\/strong>? \u00c9 importante entender como as APIs funcionam, especialmente para os desenvolvedores, porque elas s\u00e3o o ponto de contato entre o seu projeto e os sistemas j\u00e1 existentes. Para que voc\u00ea entenda <strong>o significado das<\/strong> APIs, devemos observar que elas funcionam no modelo de solicita\u00e7\u00e3o-resposta. Isso quer dizer que o cliente envia uma solicita\u00e7\u00e3o ao servidor da API e, em seguida, a API recebe a resposta do servidor. Em termos de etapas, h\u00e1 solicita\u00e7\u00f5es HTTP funcionais e pontos de extremidade de API.    <\/p>\n<p>Aqui est\u00e1 o processo:<\/p>\n<h3><strong>Cliente API<\/strong><\/h3>\n<p>O cliente come\u00e7a fazendo uma solicita\u00e7\u00e3o ao servidor de API. O cliente envia uma solicita\u00e7\u00e3o HTTP, que pode estar em v\u00e1rios formatos, como GET, DELETE, PUT ou POST. Por exemplo, voc\u00ea pode querer inserir uma solicita\u00e7\u00e3o GET como &#8220;qual \u00e9 a temperatura no Canad\u00e1 hoje?&#8221; Al\u00e9m disso, ela pode ser iniciada por outro evento, como uma notifica\u00e7\u00e3o de outro aplicativo conectado.   <\/p>\n<h3><strong>Solicita\u00e7\u00e3o de API  <\/strong><\/h3>\n<p>Uma solicita\u00e7\u00e3o de API ter\u00e1 uma apar\u00eancia diferente, dependendo da API. No entanto, ela \u00e9 composta de v\u00e1rias partes, como endpoint, m\u00e9todo, par\u00e2metros, cabe\u00e7alhos e corpo. Um ponto de extremidade \u00e9 usado para comunica\u00e7\u00e3o e geralmente \u00e9 representado como um URL. \u00c9 onde a API recebe as solicita\u00e7\u00f5es. Por outro lado, os m\u00e9todos usados na solicita\u00e7\u00e3o s\u00e3o a linguagem de comunica\u00e7\u00e3o usada pelo cliente para informar ao servidor o que ele deseja fazer com os dados. Al\u00e9m disso, os par\u00e2metros usados na API s\u00e3o o que define a chamada da API. Eles s\u00e3o usados para criar pontos de extremidade exclusivos para a chamada de API. Eles podem ser representados no corpo da solicita\u00e7\u00e3o, nos cabe\u00e7alhos e nos URLs.       <\/p>\n<p>Por outro lado, os cabe\u00e7alhos de solicita\u00e7\u00e3o fazem parte da solicita\u00e7\u00e3o HTTP e s\u00e3o usados com frequ\u00eancia para comunica\u00e7\u00e3o. Eles fornecem mais informa\u00e7\u00f5es sobre a solicita\u00e7\u00e3o e o resultado esperado. Geralmente est\u00e3o em pares de valores-chave.  <\/p>\n<p>Por fim, h\u00e1 um corpo de solicita\u00e7\u00e3o que \u00e9 considerado o principal componente de uma solicita\u00e7\u00e3o HTTP. A maioria delas \u00e9 alimentada com opera\u00e7\u00f5es de cria\u00e7\u00e3o e atualiza\u00e7\u00e3o, como POST, PATCH e PUT. Por exemplo, ao criar uma nova conta de usu\u00e1rio, \u00e9 poss\u00edvel que os detalhes do usu\u00e1rio, como nome, e-mail e senha, estejam contidos no corpo da solicita\u00e7\u00e3o.  <\/p>\n<h3><strong>Servidor de API<\/strong><\/h3>\n<p>O servidor da API recebe solicita\u00e7\u00f5es do cliente da API. Ele \u00e9 respons\u00e1vel por tratar as solicita\u00e7\u00f5es do cliente e responder adequadamente. O servidor de API realiza v\u00e1rias opera\u00e7\u00f5es, como autentica\u00e7\u00e3o de respostas, valida\u00e7\u00e3o, extra\u00e7\u00e3o e manipula\u00e7\u00e3o de dados.  <\/p>\n<h3><strong>Resposta da API<\/strong><\/h3>\n<p>Por fim, h\u00e1 um componente conhecido como API que recebe uma resposta do servidor e a transmite ao cliente. A maioria das respostas geralmente \u00e9 acompanhada por um c\u00f3digo de status que reflete o status das solicita\u00e7\u00f5es enviadas. Verificar o status das solicita\u00e7\u00f5es HTTP \u00e9 importante no <strong>desenvolvimento da API<\/strong>, caso ocorra algum erro nos aplicativos do servidor ou do cliente. A seguir, voc\u00ea encontrar\u00e1 v\u00e1rios c\u00f3digos de status relacionados \u00e0 <strong>API para iniciantes<\/strong>:   <\/p>\n<ul>\n<li><strong>200 &#8220;OK<\/strong> &#8221; &#8211; significa que a solicita\u00e7\u00e3o foi bem-sucedida.<\/li>\n<li><strong>201 &#8220;Created<\/strong> &#8221; (<strong>Criado<\/strong> ) &#8211; confirma que a cria\u00e7\u00e3o do recurso foi bem-sucedida.<\/li>\n<li><strong>202 &#8220;Accepted<\/strong> &#8221; (<strong>Aceito<\/strong> ) &#8211; significa que a solicita\u00e7\u00e3o foi aceita para processamento.<\/li>\n<li><strong>404 &#8220;Not Found<\/strong> &#8221; <strong>(N\u00e3o encontrado<\/strong> ) &#8211; significa que o servidor n\u00e3o conseguiu encontrar a p\u00e1gina.<\/li>\n<li><strong>500 &#8220;Internal Server Error<\/strong> &#8221; <strong>(Erro interno do servidor<\/strong> ) &#8211; significa que o servidor encontrou um erro inesperado.<\/li>\n<\/ul>\n<p>Outro aspecto importante da resposta da API \u00e9 o cabe\u00e7alho. Embora o cabe\u00e7alho pare\u00e7a semelhante ao cabe\u00e7alho da solicita\u00e7\u00e3o, o cabe\u00e7alho da resposta da API oferece informa\u00e7\u00f5es adicionais sobre a resposta do servidor. Por fim, o corpo da resposta da API cont\u00e9m as informa\u00e7\u00f5es que o cliente solicitou ou uma mensagem de erro se a solicita\u00e7\u00e3o n\u00e3o puder ser processada.  <\/p>\n<h2><strong>Benef\u00edcios da API<\/strong><\/h2>\n<p>As APIs permitem que os sistemas e aplicativos de software se comuniquem de forma eficaz. Algumas das vantagens da API incluem: <\/p>\n<h3><strong>Automa\u00e7\u00e3o<\/strong><\/h3>\n<p>O uso de APIs ajuda na automa\u00e7\u00e3o de tarefas repetitivas, que geralmente consomem muito tempo. Isso, por sua vez, ajuda os humanos a direcionar sua energia para tarefas mais complexas. Com o uso de APIs, os fluxos de trabalho s\u00e3o executados de forma consistente, o que ajuda a aumentar a produtividade.  <\/p>\n<h3><strong>Seguran\u00e7a<\/strong><\/h3>\n<p>O uso de APIs ajuda a aumentar a seguran\u00e7a do sistema. Isso ocorre porque a API pode ser configurada para garantir que somente determinados indiv\u00edduos, como aqueles com a chave da API, possam acessar o sistema. Isso ajuda a aumentar a seguran\u00e7a, pois \u00e9 criada uma camada adicional de seguran\u00e7a contra o uso n\u00e3o autorizado do sistema.  <\/p>\n<h3><strong>Inova\u00e7\u00e3o<\/strong><\/h3>\n<p>Outra vantagem do uso de APIs para as empresas \u00e9 o aspecto da inova\u00e7\u00e3o. Com o uso de APIs, as empresas podem obter dados de v\u00e1rias fontes e analis\u00e1-los, o que ajuda na gera\u00e7\u00e3o de insights para a tomada de decis\u00f5es. Isso ajuda a melhorar os processos de tomada de decis\u00e3o, tornando-os mais r\u00e1pidos e inteligentes. Al\u00e9m disso, o uso de APIs ajuda os desenvolvedores a criar estruturas existentes, o que ajuda a aprimorar o desenvolvimento.   <\/p>\n<h2><strong>Tipos de API<\/strong><\/h2>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-42472\" src=\"https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/image3-2.png\" alt=\"Tipos de APIs com base em estilos de arquitetura  \" width=\"1999\" height=\"1116\" srcset=\"https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/image3-2.png 1999w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/image3-2-300x167.png 300w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/image3-2-1024x572.png 1024w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/image3-2-768x429.png 768w, https:\/\/floppydata.com\/wp-content\/uploads\/2026\/04\/image3-2-1536x858.png 1536w\" sizes=\"(max-width: 1999px) 100vw, 1999px\" \/><\/p>\n<p>H\u00e1 v\u00e1rias maneiras de classificar as APIs, mas nesta se\u00e7\u00e3o da <strong>explica\u00e7\u00e3o da API para leigos<\/strong>, vamos discutir os tipos organizacionais de API, que se concentram no aspecto do acesso.<\/p>\n<h3><strong>APIs privadas<\/strong><\/h3>\n<p>O primeiro tipo de API a ser analisado \u00e9 aquele que \u00e9 usado apenas para comunica\u00e7\u00e3o interna em uma organiza\u00e7\u00e3o. Esse tipo de API \u00e9 geralmente chamado de API interna. Elas s\u00e3o usadas principalmente para vincular diferentes softwares em uma organiza\u00e7\u00e3o.  <\/p>\n<p>Isso significa que elas n\u00e3o podem ser usadas por terceiros. Voc\u00ea deve estar ciente do fato de que h\u00e1 alguns aplicativos que t\u00eam v\u00e1rias dezenas desses tipos de API para que funcionem com efici\u00eancia. <\/p>\n<h3><strong>APIs p\u00fablicas<\/strong><\/h3>\n<p>Por outro lado, a API p\u00fablica oferece o fluxo de dados da organiza\u00e7\u00e3o ao p\u00fablico. Isso significa que o fluxo de dados da organiza\u00e7\u00e3o estar\u00e1 acess\u00edvel aos desenvolvedores de terceiros, e eles poder\u00e3o integrar seus pr\u00f3prios aplicativos ao fluxo de dados da organiza\u00e7\u00e3o. <\/p>\n<p>Embora algumas APIs p\u00fablicas sejam gratuitas para o p\u00fablico, outras s\u00e3o listadas como produtos fatur\u00e1veis. Por exemplo, a plataforma de um autor pode usar a API p\u00fablica de pagamento, como a API Stripe, para o processamento de pagamentos. <\/p>\n<h3><strong>APIs de parceiros<\/strong><\/h3>\n<p>Essa API, como o nome sugere, permite a comunica\u00e7\u00e3o de duas ou mais organiza\u00e7\u00f5es, facilitando muito o processo de colabora\u00e7\u00e3o. Somente o pessoal autorizado das duas ou mais organiza\u00e7\u00f5es pode acessar os dados na API. Isso significa que a API vem com os par\u00e2metros de autentica\u00e7\u00e3o, que restringem o acesso da API ao p\u00fablico em geral.  <\/p>\n<h3><strong>APIs compostas  <\/strong><\/h3>\n<p>Essa API combina o uso de v\u00e1rias APIs em diferentes servidores, criando uma conex\u00e3o de API simples para atender aos requisitos espec\u00edficos da organiza\u00e7\u00e3o. Por exemplo, a plataforma digital do hospital pode ser desenvolvida usando a API composta, que combina o uso de v\u00e1rias APIs em diferentes servidores, como a API de registros m\u00e9dicos, a API de faturamento e a API de agendamento. <\/p>\n<h2><strong>Tipos de APIs com base em estilos de arquitetura<\/strong><\/h2>\n<p>Outra maneira de classificar as APIs \u00e9 por meio de estilos arquitet\u00f4nicos. Alguns dos estilos arquitet\u00f4nicos mais usados para <strong>APIs explicadas para leigos<\/strong> s\u00e3o: <\/p>\n<h3><strong>API REST<\/strong><\/h3>\n<p>A API REST \u00e9 possivelmente o estilo de API mais usado na programa\u00e7\u00e3o da Web. O motivo de sua popularidade \u00e9 a simplicidade e o dimensionamento, al\u00e9m da capacidade de integra\u00e7\u00e3o com diferentes aplicativos. Ela se baseia em uma arquitetura sem estado, o que significa que todas as informa\u00e7\u00f5es s\u00e3o enviadas com a chamada de API e n\u00e3o dependem de chamadas anteriores.  <\/p>\n<p>Al\u00e9m disso, a API REST \u00e9 usada para aplicativos que envolvem transfer\u00eancia de dados. Em outras palavras, o servidor da API recebe a solicita\u00e7\u00e3o e envia o conte\u00fado do servidor de destino para o usu\u00e1rio. A API usa m\u00e9todos HTTP, como GET, PUT, POST e DELETE, para processar os dados. Al\u00e9m disso, as informa\u00e7\u00f5es solicitadas s\u00e3o enviadas para o cliente-servidor no formato JSON ou XML   <\/p>\n<h3><strong>API SOAP<\/strong><\/h3>\n<p>A API Simple Object Access Protocol-SOAP usa o protocolo XML para permitir a comunica\u00e7\u00e3o entre os sistemas cliente e servidor. Ao contr\u00e1rio do REST, que se baseia em uma arquitetura sem estado, o SOAP se baseia em um padr\u00e3o rigoroso. <\/p>\n<p>Ela tamb\u00e9m oferece medidas de seguran\u00e7a adequadas a setores considerados de alto risco, como sa\u00fade, bancos e finan\u00e7as. As APIs SOAP s\u00e3o consideradas complexas e exigem muita largura de banda, o que as torna lentas. S\u00e3o usadas principalmente em aplicativos que exigem seguran\u00e7a na troca de dados em um sistema de comunica\u00e7\u00e3o.  <\/p>\n<h3><strong>API WebSocket<\/strong><\/h3>\n<p>As APIs do WebSocket fornecem comunica\u00e7\u00e3o bidirecional em sistemas de cliente e servidor. Ao contr\u00e1rio de REST e SOAP, que exigem solicita\u00e7\u00f5es repetidas para se comunicar, o WebSocket fornece um canal constante de comunica\u00e7\u00e3o para atualizar dados em tempo real. A API WebSocket \u00e9 usada principalmente em aplicativos que exigem troca r\u00e1pida de dados.  <\/p>\n<h3><strong>API GraphQL<\/strong><\/h3>\n<p>A API GraphQL \u00e9 uma linguagem de consulta de c\u00f3digo aberto. Essa \u00e9 uma alternativa ao REST, permitindo que os clientes recuperem apenas os dados de que precisam. O GraphQL permite que os clientes usem apenas um ponto de extremidade para recuperar dados, em vez de ter que enviar v\u00e1rias solicita\u00e7\u00f5es.  <\/p>\n<p>Portanto, \u00e9 mais f\u00e1cil evitar a transfer\u00eancia de dados desnecess\u00e1rios entre o cliente e o servidor. Como resultado, a API GraphQL \u00e9 adequada para uso em aplicativos que lidam com dados complexos. Normalmente, ela \u00e9 usada em aplicativos e sites em que a velocidade \u00e9 importante.  <\/p>\n<h3><strong>APIs de chamada de procedimento remoto<\/strong><\/h3>\n<p>As APIs RPC foram criadas pelo Google. Essa API permite que um cliente invoque um servidor como se fosse uma chamada de fun\u00e7\u00e3o local. Isso facilita a comunica\u00e7\u00e3o entre os sistemas.  <\/p>\n<p>Essa API \u00e9 adequada para uso em aplicativos em que a velocidade e a efici\u00eancia s\u00e3o necess\u00e1rias. Um exemplo de aplicativo em que essa API pode ser usada \u00e9 a estrutura RPC desenvolvida pelo Google, para uso em microsservi\u00e7os. <\/p>\n<h2><strong>Guia passo a passo para criar uma API<\/strong><\/h2>\n<p>Para os fins deste guia, criaremos uma API REST simples com Python e Flask. Com isso, voc\u00ea pode verificar o menu, fazer um pedido e receber a conta. <\/p>\n<p>Aqui est\u00e1 um guia passo a passo para voc\u00ea fazer isso:<\/p>\n<h3><strong>Etapa 1: Escolha uma linguagem de programa\u00e7\u00e3o e uma estrutura<\/strong><\/h3>\n<p>Python \u00e9 uma das linguagens de programa\u00e7\u00e3o mais comumente usadas para criar scripts. Python \u00e9 simples, f\u00e1cil de configurar e tem uma sintaxe clara. Por outro lado, o Flask \u00e9 uma estrutura da Web leve que facilita a cria\u00e7\u00e3o de uma API com poucos c\u00f3digos.  <\/p>\n<h3><strong>Etapa 2: Crie seu ambiente de codifica\u00e7\u00e3o<\/strong><\/h3>\n<p>A pr\u00f3xima etapa \u00e9 configurar seu ambiente. Usaremos o <em>uv<\/em>, um conjunto de ferramentas Python moderno que est\u00e1 substituindo rapidamente o antigo <em>pip + venv<\/em>. Voc\u00ea pode instalar <em>o uv<\/em> por meio da <a href=\"https:\/\/docs.astral.sh\/uv\/\" target=\"_blank\" rel=\"noopener\"> documenta\u00e7\u00e3o oficial<\/a>. Depois de instalado, crie um novo projeto e instale o Flask com os seguintes c\u00f3digos:   <\/p>\n<pre><code class=\"language-bash\"># Create project folder and enter it\nmkdir bar-api &amp;&amp; cd bar-api\n\n# Install Flask with uv (uv manages a virtual environment for you)\nuv pip install flask\n<\/code><\/pre>\n<h3><strong>Etapa 3: criar o primeiro ponto de extremidade<\/strong><\/h3>\n<p>Agora, podemos escrever um aplicativo simples do Flask que funciona como uma API de barra. Primeiro, crie um novo arquivo chamado app.py e cole o c\u00f3digo: <\/p>\n<p>&nbsp;<\/p>\n<p><strong>Exemplo de aplicativo Flask (endpoints de menu, pedidos e faturamento)<\/strong><\/p>\n<pre><code class=\"language-python\">\nfrom flask import Flask, jsonify, request\n\napp = Flask(__name__)\n\n# Sample data: drink menu\nmenu = [\n    {\"id\": 1, \"name\": \"Root beer\", \"price\": 5.0},\n    {\"id\": 2, \"name\": \"Ginger ale\", \"price\": 6.5},\n    {\"id\": 3, \"name\": \"Tequila\", \"price\": 7.0},\n]\n\n# Empty list to store orders\norders = []\n\n# Home route\n@app.route('\/')\ndef home():\n    return \"Welcome to our bar!\"\n\n# GET \/menu \u2014 fetch the menu\n@app.route('\/menu', methods=['GET'])\ndef get_menu():\n    return jsonify(menu)\n\n# POST \/order \u2014 create a new order\n@app.route('\/order', methods=['POST'])\ndef place_order():\n    new_order = request.get_json()\n\n    if not new_order or \"name\" not in new_order or \"price\" not in new_order:\n        return jsonify({\"error\": \"Invalid order data\"}), 400\n\n    new_order[\"id\"] = len(orders) + 1\n    orders.append(new_order)\n\n    return jsonify({\"order_id\": new_order[\"id\"]}), 201\n\n# GET \/bill\/&lt;order_id&gt; \u2014 get the bill for a specific order\n@app.route('\/bill\/&lt;int:order_id&gt;', methods=['GET'])\ndef get_bill(order_id):\n    order = next((o for o in orders if o[\"id\"] == order_id), None)\n\n    if order:\n        return jsonify({\n            \"order_id\": order_id,\n            \"total_price\": order[\"price\"]\n        })\n\n    return jsonify({\"error\": \"Order not found\"}), 404\n\nif __name__ == \"__main__\":\n    app.run(debug=True)\n<\/code><\/pre>\n<p>Aqui est\u00e1 um detalhamento do c\u00f3digo:<\/p>\n<ul>\n<li>O Flask cria o aplicativo Web e gerencia rotas (pontos de extremidade como <em>\/menu<\/em> ou <em>\/order<\/em>)<\/li>\n<li><em>@app.route()<\/em> define o que cada URL faz e qual m\u00e9todo HTTP ele suporta<\/li>\n<li> <em>Jsonify()<\/em> \u00e9 respons\u00e1vel por converter dados Python em formato JSON<\/li>\n<li><em>request.get_json()<\/em> l\u00ea os dados de entrada depois de enviar uma solicita\u00e7\u00e3o POST<\/li>\n<li><em>return (data, 201)<\/em> indica que o pedido foi criado com sucesso<\/li>\n<li> <em>app.run(debug=True)<\/em> inicia o servidor de desenvolvimento do Flask<\/li>\n<\/ul>\n<p>Para execut\u00e1-lo:<\/p>\n<p><em>uv run python app.py  <\/em><\/p>\n<p>Resultado: Sua API agora est\u00e1 ativa em http:\/\/102.1.1.0.1000\/<\/p>\n<h3><strong>Etapa 4: Teste sua API<\/strong><\/h3>\n<p>Antes de entrar em opera\u00e7\u00e3o, \u00e9 necess\u00e1rio que voc\u00ea teste o desempenho da API. Voc\u00ea pode usar o <strong>curl<\/strong>, uma ferramenta de linha de comando para enviar solicita\u00e7\u00f5es HTTP para executar a API. Quando seu servidor Flask estiver ativo, abra uma nova janela de terminal para usar o curl.  <\/p>\n<p>Por exemplo:<\/p>\n<p>Para visitar a p\u00e1gina inicial do servidor &#8211; (usando a solicita\u00e7\u00e3o GET)<\/p>\n<p><em>curl http:\/\/<\/em> 102.1.1.0.1000\/<\/p>\n<p>A resposta deve ser algo como:<\/p>\n<p>&#8220;Bem-vindo ao nosso bar!&#8221;<\/p>\n<h3><strong>Etapa 5: Tratamento de erros<\/strong><\/h3>\n<p>Agora que confirmamos que a nossa API est\u00e1 funcionando como pretendido, \u00e9 hora de torn\u00e1-la mais inteligente. Em cen\u00e1rios da vida real, as APIs n\u00e3o lidam apenas com solicita\u00e7\u00f5es simples. Portanto, voc\u00ea precisa garantir que a API possa lidar efetivamente com erros e retornar respostas adequadas.  <\/p>\n<p>Um exemplo de erro \u00e9 o envio de uma solicita\u00e7\u00e3o HTTP para uma bebida inexistente. O sistema v\u00ea isso como um erro e retorna uma p\u00e1gina gen\u00e9rica de resposta de erro em HTML. No entanto, queremos que todas as respostas estejam no formato JSON. Para isso, precisamos adicionar algumas linhas de c\u00f3digo \u00e0 parte inferior do arquivo app.py, como segue:   <\/p>\n<p>&nbsp;<\/p>\n<p><strong>Exemplo de tratamento de erros (Flask)<\/strong><\/p>\n<pre><code class=\"language-python\">\n@app.errorhandler(404)\ndef not_found(e):\n    return jsonify({\"error\": \"Not found\"}), 404\n\n@app.errorhandler(400)\ndef bad_request(e):\n    return jsonify({\"error\": \"Bad request\"}), 400\n\n@app.errorhandler(500)\ndef server_error(e):\n    return jsonify({\"error\": \"Internal server error\"}), 500\n<\/code><\/pre>\n<p>Aqui est\u00e1 um detalhamento dos c\u00f3digos:<\/p>\n<ul>\n<li>Um c\u00f3digo de resposta de erro HTTP 404 \u00e9 retornado se a rota n\u00e3o existir. A mensagem est\u00e1 no formato JSON, em vez de uma p\u00e1gina de resposta de erro em HTML. <\/li>\n<li>Um c\u00f3digo de status 400 ser\u00e1 retornado se a solicita\u00e7\u00e3o for inv\u00e1lida &#8211; campos ausentes ou dados incorretos<\/li>\n<li>No caso de um erro inesperado no servidor, ele retorna um c\u00f3digo de resposta simples 500 em formato leg\u00edvel<\/li>\n<\/ul>\n<h2><strong>Chaves de API vs. tokens de portador vs. OAuth<\/strong><\/h2>\n<p>As chaves de API, o token de portador e o OAuth desempenham fun\u00e7\u00f5es cruciais na seguran\u00e7a da API. Conhecer suas diferen\u00e7as ajuda voc\u00ea a entender quando usar cada uma delas. Vamos explic\u00e1-las em detalhes  <\/p>\n<h3><strong>Chaves de API<\/strong><\/h3>\n<p>Uma chave de API \u00e9 uma cadeia alfanum\u00e9rica de c\u00f3digo que um servidor de API pode usar para identificar um chamador de API e validar sua autenticidade. O objetivo principal de uma chave de API \u00e9 identificar o chamador e determinar se ele est\u00e1 autorizado a acessar. Elas s\u00e3o frequentemente empregadas em an\u00e1lises, limita\u00e7\u00e3o de taxas e monitoramento de uso.  <\/p>\n<p>Al\u00e9m disso, as chaves de API s\u00e3o est\u00e1ticas, o que as torna menos seguras. Quando comprometida, ela concede acesso a qualquer pessoa at\u00e9 que seja retificada manualmente. Elas tamb\u00e9m t\u00eam uma dura\u00e7\u00e3o mais longa, a menos que sejam definidas para expirar em um per\u00edodo espec\u00edfico.  <\/p>\n<p>Como as chaves de API s\u00e3o uma excelente maneira de confirmar a identidade de um chamador de API, elas s\u00e3o ideais para voc\u00ea:<\/p>\n<ul>\n<li><strong>Comunica\u00e7\u00e3o de servidor para servidor:<\/strong> Isso garante que a comunica\u00e7\u00e3o seja feita somente entre servidores autorizados.<\/li>\n<li><strong>Acesso \u00e0 API p\u00fablica<\/strong>: As chaves de API s\u00e3o normalmente empregadas para conceder acesso a APIs p\u00fablicas, como as APIs de mapas do Google.<\/li>\n<li><strong>Integra\u00e7\u00f5es de terceiros<\/strong>: As chaves de API s\u00e3o usadas para integra\u00e7\u00f5es de terceiros de sua API sem sacrificar a capacidade de monitorar o uso e solucionar problemas. Isso \u00e9 especialmente \u00fatil quando a monetiza\u00e7\u00e3o e a limita\u00e7\u00e3o de taxas fazem parte de seus objetivos. <\/li>\n<\/ul>\n<p>No entanto, uma chave de API n\u00e3o \u00e9 eficiente como uma \u00fanica solu\u00e7\u00e3o de seguran\u00e7a. Em vez disso, ela deve fazer parte de uma estrutura de seguran\u00e7a de API mais ampla. <\/p>\n<h3><strong>Tokens de portador<\/strong><\/h3>\n<p>Um token de portador \u00e9 um token de seguran\u00e7a que concede acesso ao seu titular. Isso significa que qualquer pessoa que possua o token ter\u00e1 acesso irrestrito. Pense nele como um ingresso de cinema &#8211; quem o possui tem acesso ao cinema sem qualquer outra prova de verifica\u00e7\u00e3o.  <\/p>\n<p>Os tokens de portador geralmente s\u00e3o associados a uma permiss\u00e3o espec\u00edfica ou a uma sess\u00e3o de usu\u00e1rio. Ao contr\u00e1rio das chaves de API, eles t\u00eam uma dura\u00e7\u00e3o curta e geralmente expiram em minutos ou horas. No entanto, eles s\u00e3o mais seguros do que as chaves de API, especialmente quando usados com HTTPS.  <\/p>\n<p>Os tokens de portador v\u00eam em diferentes formatos, como:<\/p>\n<ul>\n<li><strong>Tokens da Web JSON (JWT):<\/strong> Esses tokens s\u00e3o assinados criptograficamente e permitem autentica\u00e7\u00e3o sem estado, o que os torna uma excelente op\u00e7\u00e3o para sistemas distribu\u00eddos e microsservi\u00e7os<\/li>\n<li><strong>Tokens opacos:<\/strong> S\u00e3o cadeias de caracteres aleat\u00f3rias sem associa\u00e7\u00e3o com o cliente-servidor. Embora sejam f\u00e1ceis de implementar, eles exigem armazenamento no lado do servidor. <\/li>\n<li><strong>Atualizar tokens:<\/strong> S\u00e3o projetados para permitir que os titulares obtenham novos tokens de acesso sem a necessidade de revalida\u00e7\u00e3o.<\/li>\n<\/ul>\n<p>Alguns dos casos de uso incluem:<\/p>\n<ul>\n<li><strong>Comunica\u00e7\u00e3o entre microsservi\u00e7os:<\/strong> Os tokens de portador garantem a comunica\u00e7\u00e3o segura entre servi\u00e7os. Aqui, um servi\u00e7o autentica sua solicita\u00e7\u00e3o a outro servi\u00e7o usando um token de portador. <\/li>\n<li><strong>Gerenciamento de sess\u00e3o sem estado:<\/strong> Esses tokens permitem que os servidores autentiquem solicita\u00e7\u00f5es sem salvar as informa\u00e7\u00f5es da sess\u00e3o, o que \u00e9 \u00f3timo para sistemas distribu\u00eddos.<\/li>\n<li><strong>Autentica\u00e7\u00e3o de aplicativos m\u00f3veis:<\/strong> Os tokens de portador permitem que os usu\u00e1rios acessem as fun\u00e7\u00f5es do aplicativo sem a necessidade de nova autentica\u00e7\u00e3o.<\/li>\n<\/ul>\n<h3><strong>OAuth (Autoriza\u00e7\u00e3o aberta)<\/strong><\/h3>\n<p>O OAuth \u00e9 um protocolo de autoriza\u00e7\u00e3o de padr\u00e3o aberto. Ele permite que servidores que n\u00e3o est\u00e3o diretamente integrados forne\u00e7am acesso autenticado \u00e0s informa\u00e7\u00f5es. Esse protocolo permite que os usu\u00e1rios autorizem um aplicativo a interagir com outro, em seu nome, sem fornecer suas credenciais de autentica\u00e7\u00e3o.  <\/p>\n<p>O OAuth tem uma implementa\u00e7\u00e3o mais complexa do que as chaves de API. Ele exige o consentimento expl\u00edcito do usu\u00e1rio para que o aplicativo acesse dados espec\u00edficos, o que o torna altamente seguro. Eles s\u00e3o tokens de acesso e atualiza\u00e7\u00e3o de curta dura\u00e7\u00e3o gerados por meio de uma estrutura din\u00e2mica.  <\/p>\n<p>O OAuth funciona por meio de um mecanismo de delega\u00e7\u00e3o &#8211; os usu\u00e1rios dependem de um servidor de autoriza\u00e7\u00e3o para gerar tokens de acesso que podem ser usados para fazer login em outros aplicativos. Por exemplo, um usu\u00e1rio do Gmail gostaria que o Facebook acessasse sua lista de contatos sem compartilhar o nome de usu\u00e1rio e a senha do e-mail. <\/p>\n<h2><strong>Recapitula\u00e7\u00e3o<\/strong><\/h2>\n<p>Neste artigo <strong>da API explicada para leigos<\/strong>, aprendemos como as APIs funcionam, seus tipos e seus benef\u00edcios para as empresas. A interface de programa\u00e7\u00e3o de aplicativos (APIs) \u00e9 um componente essencial para a cria\u00e7\u00e3o de aplicativos e sites. <\/p>\n<p>As APIs facilitam a intera\u00e7\u00e3o entre aplicativos, ajudam na automa\u00e7\u00e3o e oferecem seguran\u00e7a adicional. Seja para recuperar informa\u00e7\u00f5es sobre o clima, fazer login em nossas contas ou realizar transa\u00e7\u00f5es em sites de compras on-line, as APIs est\u00e3o trabalhando arduamente para facilitar a intera\u00e7\u00e3o. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voc\u00ea j\u00e1 se perguntou como os aplicativos e os sites funcionam juntos sem problemas? Bem, \u00e9 aqui que o poder das APIs entra em a\u00e7\u00e3o. A forma completa de API \u00e9 Interface de Programa\u00e7\u00e3o de Aplicativos. Em palavras mais simples, podemos defini-la como uma ferramenta que ajuda diferentes aplicativos a se comunicarem entre si sem [&hellip;]<\/p>\n","protected":false},"author":20,"featured_media":42497,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[441,492,491,564],"tags":[],"class_list":["post-42537","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-unblocking-services","category-how-to","category-scraping"],"acf":[],"_links":{"self":[{"href":"https:\/\/floppydata.com\/pt-br\/wp-json\/wp\/v2\/posts\/42537","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/floppydata.com\/pt-br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/floppydata.com\/pt-br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/floppydata.com\/pt-br\/wp-json\/wp\/v2\/users\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/floppydata.com\/pt-br\/wp-json\/wp\/v2\/comments?post=42537"}],"version-history":[{"count":0,"href":"https:\/\/floppydata.com\/pt-br\/wp-json\/wp\/v2\/posts\/42537\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/floppydata.com\/pt-br\/wp-json\/wp\/v2\/media\/42497"}],"wp:attachment":[{"href":"https:\/\/floppydata.com\/pt-br\/wp-json\/wp\/v2\/media?parent=42537"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/floppydata.com\/pt-br\/wp-json\/wp\/v2\/categories?post=42537"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/floppydata.com\/pt-br\/wp-json\/wp\/v2\/tags?post=42537"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}