40 perguntas e respostas frequentes sobre entrevistas sobre a API REST [2023]

Uma API significa Application Programming Interface. Ele serve como um gateway para aplicativos acessarem alguns recursos de outros aplicativos.

A vantagem de usar uma API é fornecer acesso a aplicativos de terceiros para que eles não possam acessar todos os dados do seu aplicativo. Eles só podem acessar os dados que você expõe por meio de sua API.

O aplicativo ou usuário que deseja acessar os dados é conhecido como cliente, e o aplicativo que fornece os dados é conhecido como servidor.

As APIs são amplamente utilizadas hoje em todas as arquiteturas de software. Se você estiver se candidatando a uma função de front-end, back-end, full-stack ou engenharia de rede, muitas perguntas serão feitas a você sobre APIs.

Dito isso, vamos explorar algumas das perguntas mais frequentes em entrevistas sobre APIs REST.

últimas postagens

O que é REST?

Resposta: REST é um projeto de arquitetura que define algumas restrições no funcionamento de APIs. As APIs que seguem os princípios do REST são conhecidas como APIs RESTful. REST significa Representational State Transfer.

Não é um protocolo ou padrão; em vez disso, é uma arquitetura que pode ser usada para implementar APIs de várias maneiras.

Ele oferece alta flexibilidade e liberdade aos desenvolvedores, por isso é amplamente utilizado para desenvolver APIs. Aqui estão alguns dos princípios de uma arquitetura REST:

  • Separação de cliente e servidor: em uma API RESTful, o cliente não deve afetar o servidor de nenhuma outra forma além de solicitar dados por meio de um URI (Uniform Resource Identifier). Da mesma forma, o servidor não deve modificar de forma alguma o conteúdo do cliente.
  • Apatridia: Quando dois pedidos separados são feitos, eles não sabem um do outro. Em outras palavras, as solicitações não têm estado e não mantêm um estado. Se uma solicitação for atendida, ela simplesmente termina. Cada solicitação é isolada de outras solicitações.
  • Arquitetura em Camadas: O cliente ou o servidor não sabe se a requisição está sendo feita diretamente para a origem ou para uma aplicação intermediária. Eles só se preocupam com a resposta ao pedido.
  • Cache: os dados ou a resposta podem ser armazenados em cache no cliente, bem como no lado do servidor, para melhorar o desempenho e a escalabilidade. Se houver solicitações frequentes para um determinado recurso, a resposta a essa solicitação poderá ser armazenada em cache e usada quando necessário.

Quais são algumas das principais características do REST?

Resposta: As principais características ou recursos do REST são:

  • Flexibilidade: Você pode mover de um servidor para outro, e isso não mudará nada porque a API enviará a mesma resposta para uma determinada solicitação. Além disso, você pode adicionar quantos endpoints quiser para diferentes tipos de dados.
  • Escalabilidade: o armazenamento em cache melhora a escalabilidade devido ao fato de as respostas serem salvas para uso posterior. Ele diminui a carga no servidor e também reduz a latência.
  • Autorização: Com a ajuda do cabeçalho de autorização, você pode especificar as credenciais que o servidor pode usar para autorizar a solicitação.
  • Stateless: Este é o recurso mais importante do REST porque evita que as solicitações saibam o que está acontecendo com outras solicitações. As solicitações são isoladas e encerradas assim que são atendidas.

O que são recursos em uma arquitetura REST?

Resposta: Recursos são entidades nas quais diferentes operações são executadas, como recuperação, atualização ou exclusão. Eles são os blocos de construção básicos da arquitetura REST.

  Como você gerencia sua conta Audible

Por exemplo, se você considerar uma loja de comércio eletrônico online, os produtos, usuários e metadados são considerados recursos porque podem ser operados. Os recursos podem ser transferidos para outro aplicativo por meio da API.

Mencione algumas vantagens e desvantagens de uma API REST.

Resposta: As vantagens das APIs REST são as seguintes:

  • É simples de implementar.
  • Os recursos podem ser facilmente manipulados.
  • É escalável por causa da arquitetura cliente-servidor.
  • Oferece suporte a vários tipos de mídia de transferência de dados, como XML e JSON.

Suas desvantagens são:

  • Você não pode manter um estado entre as solicitações.
  • A verdadeira fonte de origem do recurso não pode ser conhecida devido à arquitetura em camadas.
  • Não é bom para consultas ou solicitações complexas.

Defina o modelo REST.

Resposta: Um modelo REST é um utilitário ou cliente por meio do qual você pode acessar APIs REST no framework Spring. Ele basicamente oculta o código clichê que você pode ter que escrever para solicitar um recurso de uma API REST.

O que é RESTful?

Resposta: APIs ou serviços RESTful são interfaces que implementam o estilo arquitetônico REST (Representational State Transfer) e funcionam usando protocolos como HTTP.

O que são serviços Web RESTful?

Resposta: Os serviços da Web RESTful são criados para funcionar melhor na Web. Representational State Transfer (REST) ​​é um estilo de arquitetura que especifica restrições, como interface uniforme, arquitetura em camadas e ausência de estado, se aplicado a um serviço da Web, induz propriedades desejáveis, como desempenho e escalabilidade, que permitem que os serviços funcionem melhor em a teia.

Como você pode testar serviços Web RESTful?

Resposta: Para testar um serviço web RESTful, você pode usar um cliente REST como Postman ou Thunder Client e consultar o serviço web que deseja testar. Então, quando receber uma resposta, entenda a resposta; essa é a parte chave.

Se você deseja testar uma API complexa com muitos endpoints, pode ser necessário dividir os testes e realizar testes de unidade, testes de integração, testes de desempenho e testes de ponta a ponta.

Mencione alguns recursos dos serviços Web RESTful.

Resposta: Alguns dos principais recursos dos serviços Web RESTful são:

  • Suporte para vários tipos de mídia, como JSON e XML.
  • Escalabilidade
  • Isolamento de cliente e servidor
  • Flexibilidade

Definir classes de recursos raiz RESTful.

Resposta: Classes de recursos raiz são “objetos Java antigos simples” (POJOs) que são anotados com @Path ou têm pelo menos um método anotado com @Path ou um designador de método de solicitação, como @GET, @POST, @PUT ou @EXCLUIR.

O que é URI?

Resposta: URI significa Uniform Resource Identifier. É uma sequência de caracteres utilizada para localizar ou identificar recursos de uma API ou serviço. Ele usa o nome ou a localização do recurso para identificá-lo, mas não depende de um método ou técnica específica.

O que é apatridia em REST?

Resposta: A ausência de estado refere-se a uma restrição aplicada a uma API na qual quaisquer duas solicitações não podem saber o que está acontecendo uma com a outra. Ou seja, o estado das requisições não é mantido. Se a solicitação for atendida, ela simplesmente termina após obter uma resposta.

O que é JAX-RS?

Resposta: JAX-RS é uma API Java que permite desenvolver aplicativos em Java que usam a arquitetura REST. Essa API facilita o desenvolvimento de aplicativos REST em Java.

Quais são as anotações de chave na API JAX-RS?

Resposta: Anotações em JAX-RS são usadas por desenvolvedores para decorar classes Java a fim de definir recursos e métodos que podem ser executados nesses recursos. Algumas anotações importantes da API JAX-RS são:

  • @GET: É usado para fazer requisições GET em HTTP.
  • @POST: É usado para fazer solicitações POST em HTTP.
  • @Path: Refere-se ao caminho relativo de uma classe Java.
  • @QueryParam: Refere-se aos parâmetros de consulta da URI ou URL.

Quais são alguns dos principais recursos da API JAX-RS?

Resposta: Os recursos do JAX-RS são:

  • Cache do lado do cliente
  • Cache do lado do servidor
  • Personalização da string de consulta
  • Anotações de tempo de execução

Como os aplicativos JAX-RS podem ser configurados?

Resposta: Um aplicativo JAX-RS consiste em pelo menos uma classe de recurso compactada em um arquivo WAR. O URI base a partir do qual os recursos de um aplicativo respondem às solicitações pode ser definido de duas maneiras:

  • Usando a anotação @ApplicationPath em uma subclasse de javax.ws.rs.core.Application compactada no WAR
  • Usando a tag de mapeamento de servlet no descritor de implementação web.xml do WAR

O que são JAX-WS e JAX-RS?

Resposta: JAX-WS é um Jakarta XML Web Services API usado para desenvolver APIs usando Simple Object Access Protocol (SOAP) – um protocolo de mensagens baseado em XML.

  Como fazer um acordo de pagamento com a Cox

Por outro lado, JAX-RS é uma API Java usada para criar serviços da Web usando a arquitetura REST.

O que são códigos de status HTTP?

Resposta: Os códigos de status nada mais são do que uma forma de comunicar o status da resposta enviada pelo servidor ao cliente. Eles estão presentes nos cabeçalhos de resposta enviados pelo servidor.

O cliente é capaz de descobrir se a solicitação falhou ou foi atendida ou se há algo errado com a resposta usando os códigos de status.

Aqui estão alguns códigos de status comuns de HTTP: –

  • 200 – Significa a palavra-chave “OK”. Isso significa que a solicitação foi atendida e a resposta está correta.
  • 404 – Significa “Não Encontrado”. Isso significa que um recurso não está presente no servidor ou um endpoint não existe.
  • 500 – Significa “Erro interno do servidor”. Isso geralmente acontece quando o servidor não pode gerar a resposta correta ou há um erro que não é lançado explicitamente.
  • 503 – Significa “Serviço Indisponível”. Isso significa que, atualmente, o servidor não pode processar nenhuma solicitação, provavelmente porque está morto ou não está funcionando devido à sobrecarga de solicitações. Também pode ocorrer quando o servidor está em manutenção.

O que são métodos HTTP?

Resposta: Os métodos HTTP são usados ​​para executar um determinado tipo de ação em um determinado recurso de uma API. Por exemplo, se você deseja obter uma lista de filmes de uma API de coleção de filmes, pode usar o método GET fornecido pelo HTTP. Se você deseja atualizar os dados, pode usar o método POST fornecido pelo HTTP.

Os métodos HTTP usados ​​com frequência são os seguintes:

  • GET: Requisições usando GET devem apenas recuperar dados.
  • POST: atualiza o recurso enviando um recurso recém-atualizado para o servidor.
  • DELETE: Exclui o recurso especificado.
  • PATCH: Modifica parcialmente o recurso.

Como funciona a autenticação básica HTTP?

Resposta: Autenticação é um processo para verificar a autenticidade de um cliente para manter a segurança dos dados. No HTTP, a autenticação funciona por meio de um Cabeçalho de Autorização, que é enviado pelo cliente.

O cabeçalho de autorização consiste no nome de usuário/id e senha do cliente, que é verificado pelo servidor e o acesso é concedido.

Uma coisa importante a observar aqui é que, ao usar a autenticação HTTP, o canal pelo qual as credenciais passam deve ser criptografado e seguro.

Você pode proteger o canal usando a camada SSL, que é integrada ao HTTPS. Portanto, é recomendável usar HTTPS em vez de HTTP simples ao lidar com credenciais.

Quais são os principais componentes da solicitação HTTP?

Resposta: Uma solicitação HTTP consiste nos seguintes componentes:

  • Linha de solicitação: é a primeira linha em qualquer solicitação e consiste no método HTTP, no caminho ou endpoint e no número da versão HTTP.
  • Cabeçalhos: cabeçalhos HTTP são usados ​​para fornecer metadados da solicitação.
  • Corpo (Opcional): Este componente está presente apenas para alguns dos métodos de solicitação. Não é necessário para solicitações GET, mas é necessário para solicitações POST. É a mensagem real da solicitação.

Quais são os principais componentes da resposta HTTP?

Resposta: Uma resposta HTTP consiste nos seguintes componentes:

  • Status: Refere-se ao código de status HTTP que é enviado pelo servidor.
  • Cabeçalhos: Assim como as requisições, as respostas também possuem seus respectivos cabeçalhos, que fornecem informações úteis sobre a resposta.
  • Mensagem: são os dados reais que são enviados pelo servidor ao cliente para solicitar um determinado recurso.

Qual é a diferença entre REST e AJAX?

Resposta: AJAX é um cliente através do qual você pode acessar APIs RESTful. Ele é usado para enviar solicitações assíncronas usando JavaScript.

REST, ou Representational State Transfer, é uma arquitetura que pode ser implementada para criar APIs RESTful. Resumindo, para enviar requisições HTTP, você pode usar o AJAX que serve como cliente, mas se você quiser implementar APIs RESTful, então você tem que usar a arquitetura REST.

Qual é a diferença entre SOAP e REST?

Resposta: Representational State Transfer, ou REST, é uma arquitetura com restrições mínimas para criar APIs. SOAP, ou Simple Object Access Protocol, é um protocolo com requisitos estritos para implementar uma API.

REST é mais flexível e fácil de usar do que SOAP. Mensagens baseadas em XML são usadas em SOAP, enquanto em REST, você pode usar muitos tipos de transferência de dados, como JSON, XML, etc. Em comparação com SOAP, REST é mais leve e rápido.

Os serviços da web SOAP têm segurança integrada, que é uma vantagem de usar SOAP sobre REST, mas os recursos adicionados também o tornam complexo e pesado de usar.

Qual é a diferença entre PUT e POST?

Resposta: POST é um método de solicitação HTTP que envia alguns dados para o servidor. Se você fizer várias solicitações POST para um determinado recurso, poderá haver efeitos colaterais em seus dados. Por exemplo, se você quiser adicionar um artigo a uma coleção, se fizer várias solicitações POST, vários artigos serão adicionados à coleção, resultando em artigos redundantes.

  8 Melhor hospedagem de site estático para uso comercial e pessoal

PUT é um método de solicitação HTTP que envia dados ao servidor para um recurso específico, mas atualiza os dados apenas uma vez. Se você enviar várias solicitações PUT para um determinado recurso, nenhum efeito colateral ocorrerá e os dados serão adicionados apenas uma vez. Em PUT, se o recurso não existir, ele criará um novo, e se existir, atualizará o existente.

PUT é idempotente, enquanto POST não é.

O que é uma carga útil?

Resposta: Uma carga em uma API REST é simplesmente o corpo da solicitação enviada do cliente para o servidor. São os dados que você deseja enviar ao servidor e obter uma resposta.

Qual é o tamanho máximo da carga útil que pode ser enviada em métodos de postagem?

Resposta: Não há limite padrão definido pelo próprio protocolo HTTP. O limite pode depender do limite máximo do cliente ou do servidor, o que for o mínimo.

Ao criar URI, quais são as práticas recomendadas que precisam ser seguidas?

Resposta: Alguns dos pontos-chave que você precisa ter em mente ao projetar URIs são:

  • Evite usar extensões de arquivo
  • Ser consistente com todos os URIs
  • Divida os URIs em domínios e subdomínios para diferentes conjuntos de recursos
  • Você deve usar hífen ou sublinhado para separar palavras em frases incorporadas em URIs
  • Você deve usar a barra para indicar uma hierarquia de recursos
  • Codifique um URI usando a codificação adequada
  • Tente tornar o URI legível por humanos

O que são métodos idempotentes?

Resposta: Os métodos HTTP idempotentes têm o mesmo efeito no servidor, apesar de enviarem várias solicitações idênticas. Por exemplo, se você enviar várias solicitações DELETE idênticas para um determinado recurso, o recurso não será alterado a cada solicitação; ele será atualizado como se apenas uma solicitação tivesse sido enviada.

Alguns dos métodos idempotentes incluem:

  • COLOCAR
  • EXCLUIR
  • PEGAR
  • CABEÇA
  • OPÇÕES

O que é carteiro?

Resposta: Postman é uma ferramenta de desenvolvimento de API para desenvolver, modificar e testar APIs. Ele fornece muitos recursos para criar e testar APIs rapidamente, sem a necessidade de configurar um cliente.

Resposta: O cabeçalho Cache-Control consiste em instruções ou diretivas para configurar o cache em navegadores e servidores. Ele informa ao navegador ou ao servidor o que armazenar em cache e por quanto tempo deve ser armazenado em cache antes de ser solicitado por meio da solicitação de rede.

O cabeçalho Cache-Control inclui as seguintes diretivas:-

  • idade máxima
  • sem cache
  • privado
  • público
  • sem loja
  • imutável

Definir mensagens em serviços da Web RESTful.

Resposta: As mensagens nos serviços da Web RESTful referem-se ao cliente que envia uma solicitação HTTP ao servidor, à qual o servidor responde com uma resposta HTTP. Essa comunicação entre o cliente e o servidor é chamada de sistema de mensagens.

Qual é a diferença entre arquitetura monolítica, SOA e de microsserviços?

Resposta: Em uma arquitetura monolítica, tudo é gerenciado em um só lugar. O lado do cliente, o servidor e o banco de dados são todos gerenciados de um único local. É por isso que é conhecido como monolítico porque a palavra “monólito” refere-se a um único bloco ou pedra.

SOA significa Arquitetura Orientada a Serviços. Nesta arquitetura, diferentes aspectos do aplicativo são gerenciados por diferentes serviços, que também são softwares. Portanto, é uma combinação de vários módulos de software de serviço. A integração é a parte chave desta arquitetura.

A arquitetura de microsserviços é semelhante à SOA, mas, ao contrário da SOA, possui vários programas de software autônomos que conversam entre si usando APIs. Ao contrário da arquitetura monolítica, tudo aqui é autônomo e, até certo ponto, independente.

Como funciona a arquitetura de microsserviços?

Resposta: Em uma arquitetura de microsserviços, os aplicativos são divididos em subunidades menores que são independentes umas das outras e funcionam por conta própria, mas se comunicam entre si por meio de um conjunto bem definido de APIs.

Alguns benefícios da arquitetura de microsserviços incluem agilidade, flexibilidade, escalabilidade, tecnologias independentes, serviços reutilizáveis ​​e fácil implantação.

O que é CRUD?

Resposta: CRUD significa Criar, Ler, Atualizar, Excluir. Estas são as operações que podem ser executadas em um recurso específico. A API que suporta todas essas operações é conhecida como API CRUD. Essas são as operações mais básicas que podem ser executadas por uma API em um recurso.

O que é cache?

Resposta: O cache é uma técnica de armazenamento de uma resposta ou solicitação no cliente ou no servidor para ser usado novamente posteriormente.

As respostas geralmente são armazenadas em cache no cliente porque, se o cliente fizer a mesma solicitação várias vezes em um curto intervalo de tempo, não faz sentido solicitar a resposta novamente pela rede e desperdiçar a largura de banda.

Qual é a utilidade de @RequestMapping?

Resposta: É uma anotação no framework spring que é usada para mapear requisições da web em classes de manipulador específicas e/ou métodos de manipulador.

O que @PathVariable faz?

Resposta: A anotação @PathVariable no framework spring é usada para extrair o valor das variáveis ​​do modelo e atribuir seu valor a uma variável de método.

Defina HttpMessageConverter.

Resposta: Quando uma solicitação HTTP (ou partes dela) precisa ser convertida em um tipo necessário como um argumento para um método manipulador ou quando o valor retornado por um método manipulador precisa ser convertido de alguma forma para criar uma resposta HTTP, HTTP conversores de mensagens são usados.

Resposta: Algumas ferramentas que podem ajudá-lo no teste de API são as seguintes:

  • Carteiro
  • Tenha certeza
  • Rest Sharp
  • Katalon
  • ReadyAPI
  • Apigee

Palavras Finais

Hoje em dia, as APIs se tornaram extremamente populares devido ao advento da internet. Outra razão pela qual as APIs REST são populares é que elas são fáceis de desenvolver e fáceis de usar.

Se você estiver se preparando para uma entrevista, considere as perguntas acima sobre APIs REST que podem ser feitas em sua entrevista.

Em seguida, você pode verificar como raspar um site usando a API de raspagem da Web do etechpt.com.