Início topics O que é uma API de REST? O que é uma API REST?
Explore a solução de API REST da IBM Inscreva-se para receber atualizações sobre tópicos de IA
Imagem da interface do usuário de gerenciamento de API
O que é uma API REST?

Uma API REST (também chamada de API RESTful ou web API RESTful) é uma interface de programação de aplicativos (API) que segue os princípios de design do estilo arquitetônico de transferência de estado representacional (REST).APIs REST fornecem uma maneira flexível e leve de integrar aplicações e conectar componentes em arquiteturas de microsserviços.
 

Primeiro, definido em 2000 pelo cientista da computação Dr. Roy Fielding em sua dissertação de doutorado, o REST oferece um nível relativamente alto de flexibilidade, escalabilidade e eficiência para desenvolvedores. Por essas razões, as APIs REST se consolidaram como um método comum para conectar componentes e aplicações em uma arquitetura de microsserviços.

Desmascarando os mitos da observabilidade

Este ebook tem como objetivo desmistificar mitos sobre a observabilidade e destacar seu papel no mundo digital.

Conteúdo relacionado

Leia um guia sobre automação inteligente

Aprenda como a IA otimiza agentes baseados em API
Princípios de design REST No nível mais básico, uma API é um mecanismo que permite que uma aplicação ou serviço acesse um recurso dentro de outra aplicação ou serviço. A aplicação ou serviço que acessa os recursos é o cliente, e a aplicação ou serviço que contém o recurso é o servidor. Algumas APIs, como SOAP ou XML-RPC, impõem uma estrutura rígida aos desenvolvedores. Mas os desenvolvedores podem criar APIs REST usando praticamente qualquer linguagem de programação e suportar uma variedade de formatos de dados. O único requisito é que eles se alinhem a estes seis princípios de design REST - também conhecidos como restrições arquitetônicas: Interface uniforme

Todas as solicitações de API para o mesmo recurso devem ter a mesma aparência, independentemente de sua origem. A API REST deve garantir que o mesmo dado, como o nome ou endereço de e-mail de um usuário, pertença a apenas um identificador de recurso uniforme (URI). Os recursos não devem ser muito grandes, mas devem conter todas as informações que o cliente possa precisar.

Desacoplamento cliente-servidor

No design da API REST, as aplicações do cliente e do servidor devem ser completamente independentes uma da outra. A única informação que a aplicação do cliente deve conhecer é o URI do recurso solicitado; ela não pode interagir com a aplicação do servidor de nenhuma outra forma. Da mesma forma, uma aplicação do servidor não deve modificar a aplicação do cliente além de passar os dados solicitados via HTTP.

APIs sem estado

As APIs REST são sem estado, ou seja, cada solicitação precisa incluir todas as informações necessárias para seu processamento. Em outras palavras, as APIs REST não requerem quaisquer sessões do lado do servidor. Aplicações do servidor não estão autorizadas a armazenar quaisquer dados relacionados a uma solicitação do cliente.

Cacheabilidade

Quando possível, os recursos devem ser armazenados em cache no lado do cliente ou do servidor. As respostas do servidor também precisam conter informações sobre se o cache é permitido para o recurso entregue. O objetivo é melhorar o desempenho no lado do cliente e, ao mesmo tempo, aumentar a escalabilidade no lado do servidor.

Arquitetura de sistema em camadas

Nas APIs REST, as chamadas e respostas passam por diferentes camadas. Como regra geral, não assuma que as aplicações do cliente e do servidor se conectam diretamente uma à outra. Pode haver vários intermediários diferentes no loop de comunicação. As APIs REST precisam ser projetadas de modo que nem o cliente nem o servidor possam dizer se estão se comunicando com a aplicação final ou um intermediário.

Código sob demanda (opcional)

As APIs REST geralmente enviam recursos estáticos, mas, em certos casos, as respostas também podem conter código executável (como miniaplicativos Java). Nesses casos, o código só deve ser executado sob demanda.

Como funcionam as APIs REST

As APIs REST se comunicam por meio de solicitações HTTP para executar funções padrão de banco de dados, como criar, ler, atualizar e excluir registros (também conhecidos como CRUD) em um recurso.

Por exemplo, uma API REST usaria uma solicitação GET para recuperar um registro. Uma solicitação POST cria um novo registro. Uma solicitação PUT atualiza um registro, e uma solicitação DELETE exclui um. Todos os métodos HTTP podem ser usados em chamadas de API. Uma API REST bem projetada é semelhante a um site em execução em um navegador web com funcionalidade HTTP integrada.

O estado de um recurso em um determinado instante, ou registro de data e hora, é conhecido como a representação do recurso. Essas informações podem ser entregues a um cliente em praticamente qualquer formato, incluindo JavaScript Object Notation (JSON), HTML, XLT, Python, PHP ou texto simples. JSON é popular porque pode ser lido por humanos e máquinas – e é independente da linguagem de programação.

Cabeçalhos e parâmetros de solicitação também são importantes em chamadas de API REST, pois incluem informações identificadoras importantes, como metadados, autorizações, identificadores uniformes de recursos (URIs), cache, cookies e mais. Cabeçalhos de solicitação e resposta, juntamente com os códigos de status HTTP convencionais, são usados em APIs REST bem projetadas.

 

Melhores práticas da API REST

Embora a flexibilidade seja uma grande vantagem do design de API REST, essa mesma flexibilidade facilita projetar uma API que seja problemática ou tenha desempenho ruim. Por esse motivo, os desenvolvedores profissionais compartilham as melhores práticas nas especificações da API REST.

A OpenAPI Specification (OAS) estabelece uma interface para descrever uma API de forma que qualquer desenvolvedor ou aplicação possa descobri-la e entender completamente seus parâmetros e recursos. Essas informações incluem endpoints disponíveis, operações permitidas em cada endpoint, parâmetros de operação, métodos de autenticação e mais. A versão mais recente, OAS3, inclui ferramentas práticas, como o OpenAPI Generator, para gerar clientes de API e stubs de servidor em diferentes linguagens de programação.

A proteção de uma API REST também começa com as melhores práticas do setor. Use algoritmos de hashing para a segurança da senha e HTTPS para a transmissão segura de dados. Um framework de autorização como o OAuth 2.0 pode ajudar a limitar os privilégios de aplicações de terceiros.

Usando um registro de data e hora no cabeçalho HTTP, uma API também pode rejeitar qualquer solicitação que chegue após um determinado período de tempo. A validação de parâmetros e JSON Web Tokens são outras maneiras de garantir que apenas clientes autorizados possam acessar a API.

Soluções relacionadas IBM API Connect

Gerencie o ciclo de vida da sua API em múltiplas nuvens, impulsione a socialização e otimize os esforços de monetização em todo o seu ecossistema empresarial com o gerenciamento de API seguro do IBM API Connect.

Soluções de integração

Conecte, automatize e libere o potencial de negócios com soluções de integração.

Soluções iPaaS

Conecte aplicativos, dados, processos de negócios e serviços, estejam eles hospedados no local, em uma nuvem privada ou em um ambiente de nuvem pública.

Recursos O que é uma API?

Saiba como as interfaces de programação de aplicações, ou APIs, simplificam o desenvolvimento de software e a inovação ao permitir que aplicações troquem dados e funcionalidades de forma fácil e segura.

O que é API Management?

Saiba mais sobre gerenciamento de API e como uma plataforma unificada de gerenciamento de API pode ajudar sua organização a escalar.

Gartner Critical Capabilities de 2023

Leia o relatório de Recursos Críticos para Gerenciamento de Ciclo de Vida Completo de API da Gartner de 2023 para mais detalhes sobre por que a Gartner reconheceu a IBM como líder.

Dê o próximo passo

Use o IBM API Connect para proteger e gerenciar APIs corporativas ao longo de seus ciclos de vida. Ele ajuda você e seus clientes a criar, gerenciar, proteger, divulgar e monetizar consistentemente APIs corporativas, e também está disponível como uma plataforma de gerenciamento de API altamente escalável no IBM Marketplace and AWS.

Explore o API Connect Agende uma demonstração em tempo real