Conteúdo[Esconder][Mostrar]
- 1. O que você entende por REST?
- 2. O que você entende por API REST?
- 3. O que exatamente é URI?
- 4. Quais são as características dos Web Services RESTful?
- 5. Quais são os princípios orientadores do REST?
- 6. Mencione os métodos HTTP suportados pelo REST.
- 7. Descreva as restrições impostas por uma interface consistente.
- 8. O que exatamente é um recurso REST?
- 9. O que JAX-RS significa para você?
- 10. O que distingue AJAX e REST um do outro?
- 11. Você pode listar algumas desvantagens dos serviços web RESTful?
- 12. O que distingue as técnicas PUT e POST umas das outras?
- 13. Como você testa serviços web RESTful?
- 14. Descreva uma API REST no mundo real.
- 15. Como funciona a arquitetura de microsserviços?
- 16. O que exatamente é cache?
- 17. Descreva a carga útil.
- 18. Diferencie SOAP vs REST?
- 19. O protocolo de segurança da camada de transporte (TLS) pode ser usado com REST?
- 20. Métodos idempotentes: o que são? Como isso se aplica ao mundo dos serviços web RESTful?
- 21. Qual é a funcionalidade da autenticação básica HTTP?
- 22. Você acha que o GraphQL é a melhor escolha para criar arquitetura de microsserviços?
- 23. Quais são as principais diferenças entre os métodos HTTP seguros e idempotentes?
- 24. O que a API JAX-RS implica nas Classes de Recurso Raiz RESTful?
- 25. O que exatamente é o Postman e por que ele é usado?
- 26. Como as APIs REST são mantidas seguras?
- Conclusão
A evolução do REST tornou as APIs incrivelmente acessíveis, ao mesmo tempo em que revela toda a sua força e potencial. As APIs REST são fáceis de criar e armazenar em cache devido à sua arquitetura orientada a recursos.
Além disso, ao longo do tempo, as APIs RESTful foram as precursoras de outros desenvolvimentos significativos, como computação em nuvem e design baseado em microsserviços.
Portanto, não deve ser surpresa que os desenvolvedores de API REST estejam em demanda hoje, dada a forma como eles fornecem às empresas que empregam serviços RESTful uma vantagem competitiva. APIs REST são uma tendência de design popular.
Muitas empresas de TI querem conhecimento de API REST de desenvolvedores de software e pergunte sobre isso em entrevistas técnicas.
Aqui estão algumas das perguntas mais típicas da entrevista da API REST que o ajudarão a estar pronto para entrevistas em várias empresas, se você quiser trabalhar no campo de desenvolvimento da API REST.
1. O que você entende por REST?
REST é um paradigma de arquitetura para projetar aplicativos baseados na Web que são baseados no Hypertext Transfer Protocol (HTTP).
REST define certos padrões que os web services devem atender para serem considerados RESTful. Essas recomendações garantem que solicitações e recursos sejam transmitidos de forma rápida e eficaz entre cliente e servidor usando protocolos HTTP padronizados.
2. O que você entende por API REST?
Um link de software para software conhecido como interface de programação de aplicativos permite a comunicação e o compartilhamento de dados entre programas independentes. Por exemplo, um site de notícias pode usar a API do Twitter para descobrir tweets pertinentes automaticamente e integrá-los às notícias.
Uma API que adere aos princípios REST é conhecida como API REST, às vezes conhecida como API RESTful. Em uma API REST, cada parte dos dados é tratada como um recurso e recebe uma identidade de recurso padrão (URI) distinta.
Por exemplo, a API do Twitter torna cada tweet um recurso recuperável que está disponível para os clientes. A API do Twitter pode ser usada pelos usuários para postar tweets e realizar outras tarefas do site.
3. O que exatamente é URI?
A rede de computadores recurso pode ser referido usando um URI ou identificador de recurso uniforme. Serve como um meio de separar um recurso de outro. As fontes podem ou não estar online.
Devido à sua estrutura padrão, os URIs simplificam a conexão até mesmo com vários tipos de recursos. O local ou nome do recurso é incluído nos URIs junto com uma sequência de caracteres.
O URI é composto por um caminho, esquema, consulta e outros elementos, mas não inclui o protocolo.
Usando um protocolo, URLs (Uniform Resource Locators) são usados para encontrar recursos na internet ou acessíveis através dela.
4. Quais são as características dos Web Services RESTful?
- O paradigma Cliente-Servidor é a base do serviço.
- O serviço pode acessar recursos usando URIs.
- O serviço utiliza o protocolo HTTP para adquirir dados/recursos, executar consultas e realizar outras tarefas.
- Messaging é o nome do método usado para comunicação entre o cliente e o servidor.
- Esses serviços também podem implementar o padrão de arquitetura REST usando serviços SOAP.
- Para reduzir as chamadas do servidor para o mesmo tipo de solicitações repetitivas, esses serviços também empregam a ideia de armazenamento em cache.
5. Quais são os princípios orientadores do REST?
Cinco critérios devem ser atendidos pelas APIs REST:
Desacoplamento cliente-servidor: Apenas uma série de solicitações e respostas podem ser usadas para comunicação entre o cliente e o servidor. Apenas clientes e servidores podem enviar solicitações e respostas, respectivamente. Essa ideia direta permite que ambas as partes funcionem independentemente uma da outra.
Interface Uniforme: Deve haver um protocolo uniforme para todas as conexões cliente-servidor. Este protocolo para REST é HTTP. Como cada aplicativo solicita e envia dados usando a mesma linguagem, uma interface consistente torna as integrações mais simples.
Stateless: O servidor não salva nenhum registro de solicitações ou respostas anteriores em comunicação sem estado. Cada solicitação e resposta fornecem todos os detalhes necessários para concluir a troca. A comunicação sem estado aumenta a velocidade, economiza memória e diminui o estresse no servidor. Além disso, evita a possibilidade de uma solicitação falhar devido a dados incompletos.
Sistema em camadas: os servidores que residem entre o cliente e o servidor de API são chamados de camadas. Esses servidores extras realizam diversos serviços, como detectar spam e otimizar a velocidade. As camadas no REST são modulares, o que significa que podem ser adicionadas e excluídas sem afetar as comunicações entre o cliente e o servidor de API.
Armazenável em cache: os clientes podem armazenar em cache qualquer recurso para aumentar a velocidade se as respostas do servidor indicarem se o recurso pode ser armazenado em cache ou não.
Codificação sob demanda: em resposta, uma API pode transmitir código de computador executável aos clientes. O aplicativo cliente pode então executar o código em seu próprio back-end.
6. Mencione os métodos HTTP suportados pelo REST.
Os métodos HTTP suportados pelo REST são:
- GET: Este método solicita um recurso na URL especificada. Um corpo de solicitação não deve ser incluído porque será ignorado. Pode ser possível armazená-lo em cache localmente ou no servidor.
- POST: Este método envia dados a um serviço para processamento e o serviço normalmente deve retornar um recurso novo ou alterado.
- PUT: O recurso é atualizado na URL de solicitação.
- DELETE: O recurso é excluído na URL de solicitação.
- Opções: Identifica os métodos suportados.
- HEAD: os metadados da URL de solicitação são retornados.
7. Descreva as restrições impostas por uma interface consistente.
Para separar o cliente do servidor, é necessária uma interface consistente.
Para obter uma interface consistente, as quatro restrições a seguir são necessárias:
- Identificação de recursos: as solicitações do cliente devem utilizar IDs de recursos padrão para identificar recursos (URIs)
- Manipulação de recursos usando estas representações: Os clientes têm todas as informações necessárias para poder alterar o estado do recurso quando obtêm uma representação de recurso do servidor.
- Mensagens autodescritivas: As mensagens incluem todos os metadados e outras informações necessárias para que o receptor as compreenda.
- Hipermídia como mecanismo de estado do aplicativo: O canal para comunicação cliente-servidor é hipermídia, como HTML, e os clientes não precisam de documentação específica da API para compreender as respostas do servidor.
8. O que exatamente é um recurso REST?
Os recursos são os componentes fundamentais de um serviço web RESTful em uma arquitetura REST. Eles incluem todas as informações cruciais que um cliente de API precisa acessar.
Qualquer tipo de recurso, como uma página HTML, uma imagem, um vídeo ou qualquer outra coisa necessária para uma atividade de API, pode ser acessado através do servidor em um sistema cliente-servidor.
Os recursos são identificados por um Identificador Uniforme de Recursos. Texto, JSON ou XML são todas representações aceitáveis de recursos. Posto isto, não há limitações quanto ao formato da representação.
9. O que JAX-RS significa para você?
É mais simples criar serviços web RESTful em Java graças à API Java para serviços web RESTful, geralmente conhecida como JAX-RS. Os desenvolvedores podem descrever recursos e as operações que podem ser realizadas neles usando as anotações fornecidas.
10. O que distingue AJAX e REST um do outro?
Ajax:
- Ajax é um conjunto de tecnologias que permite a atualização dinâmica de interface com o usuário elementos sem ter que recarregar a página.
- Ajax remove a comunicação assíncrona entre o cliente e o servidor.
DESCANSAR:
- REST exige comunicação entre o servidor e o cliente.
- A utilização de recursos é importante para a estrutura de URL e padrão de solicitação/resposta usado pelo REST.
11. Você pode listar algumas desvantagens dos serviços web RESTful?
As sessões não podem ser mantidas, pois os serviços aderem à noção de apatridia. (O cliente é responsável por passar o ID da sessão durante toda a simulação da sessão.)
Restrições de segurança não são fundamentais para REST. Os protocolos que o utilizam herdam as precauções de segurança. Portanto, é importante ter cuidado ao implementar medidas de segurança, como integrar autenticações baseadas em SSL/TLS.
12. O que distingue as técnicas PUT e POST umas das outras?
PUT:
- Não há cache para respostas PUT.
- Idempotente (ou seja, várias solicitações produzirão o mesmo resultado)
- a carga útil da solicitação atualiza ou substitui o recurso de destino.
POSTAR:
- idempotente não (ou seja, várias solicitações produzirão múltiplos do mesmo recurso)
- O servidor web processa a carga útil da solicitação com base no recurso pretendido.
- Se o cabeçalho de controle de cache apropriado for incluído, as respostas POST poderão ser armazenadas em cache.
13. Como você testa serviços web RESTful?
O teste de serviço web RESTful pode ser auxiliado por várias ferramentas, incluindo Swagger e Postman. A inspeção de parâmetros de solicitação, como parâmetros de consulta, cabeçalhos e cabeçalhos de resposta, é possível devido à abundância de recursos deste último.
O Postman pode ser usado para fazer solicitações aos endpoints e mostrar os resultados. E XML e JSON podem ser criados a partir dessas respostas.
Postman e Swagger fornecem funcionalidades extremamente comparáveis. Por outro lado, o Swagger também oferece recursos como documentação de endpoints.
14. Descreva uma API REST no mundo real.
- Os sites de viagens e passagens podem aproveitar os horários e preços dos voos que as companhias aéreas disponibilizam por meio de APIs.
- Para que os aplicativos de mapeamento e navegação (como o Google Maps) os usem, as agências de transporte público costumam disponibilizar seus dados publicamente em tempo real por meio de APIs.
- Os aplicativos meteorológicos usam APIs abertas que trocam dados meteorológicos para exibir informações meteorológicas.
- Os desenvolvedores podem acessar os dados de mapeamento do Google Maps por meio de várias APIs hospedadas. Essas APIs são usadas pelos desenvolvedores para incorporar mapas dinâmicos em seus aplicativos e sites.
15. Como funciona a arquitetura de microsserviços?
- As solicitações são enviadas por vários clientes usando vários dispositivos.
- Depois de confirmar as identidades dos clientes, os provedores de identidade fornecem tokens de segurança.
- As solicitações do cliente são gerenciadas pelo API Gateway.
- Todo o material do sistema é preservado como conteúdo estático.
- A ferramenta de gerenciamento verifica o saldo dos serviços nos nós e eventuais falhas.
- A descoberta do caminho de comunicação entre microsserviços é auxiliada pela descoberta de serviços.
- Centros de dados e servidores proxy compõem sistemas de rede dispersos chamados redes de entrega de conteúdo.
- Os serviços remotos fornecem acesso à informação à distância.
16. O que exatamente é cache?
A prática de manter temporariamente uma cópia de uma resposta do servidor em algum lugar (como a memória do computador) para acessá-la mais tarde mais rapidamente é conhecida como cache.
O armazenamento em cache aumenta a velocidade do servidor ao usar APIs REST, diminuindo a quantidade de trabalho que o servidor deve fazer para atender à solicitação. Os aplicativos que utilizam a API são executados mais rapidamente graças ao armazenamento em cache, pois não precisam enviar uma nova solicitação sempre que precisam de um recurso.
O campo Cache-Control do cabeçalho de resposta HTTP contém informações sobre quanto tempo um recurso pode ser armazenado em cache pelo cliente antes de precisar ser acessado novamente.
17. Descreva a carga útil.
A carga útil em REST refere-se às informações contidas no corpo da resposta HTTP. O cliente utilizou a técnica GET para solicitar os dados em questão.
O documento contendo o texto do tweet e quaisquer arquivos necessários para colocar o tweet em um site serão incluídos no payload, por exemplo, se você solicitar à API do Twitter um tweet específico. Além disso, a carga útil pode ser incluída na solicitação HTTP usando o método POST.
18. Diferencie SOAP vs REST?
- Ao contrário do SOAP, que só pode lidar com XML, o REST permite uma ampla variedade de formatos de recursos, incluindo XML, texto, HTML, imagens, vídeo e muito mais.
- Quando a segurança é crucial para aplicativos online, o SOAP é útil. O REST não pode ser utilizado quando as transações devem ser concluídas com segurança, pois não é particularmente seguro.
- Como o SOAP é apenas um protocolo, o REST pode usá-lo em seus serviços da Web, mas não o contrário.
- Enquanto o REST é apenas um padrão de arquitetura usado para desenvolver serviços da Web e obedece a certas limitações, como configuração cliente-servidor, ausência de estado, resposta em cache, sistemas em camadas e interface consistente, o SOAP é um protocolo que opera em padrões específicos que devem ser rigorosamente respeitados. para.
- Enquanto o REST usa identificadores de recursos universais (URIs), o SOAP usa interfaces de serviço para fornecer seus recursos aos aplicativos clientes. O REST tem uma necessidade de largura de banda menor que o SOAP, pois as mensagens SOAP são mais pesadas em informações.
19. O protocolo de segurança da camada de transporte (TLS) pode ser usado com REST?
Na verdade, podemos. A comunicação do cliente e servidor REST é criptografada via TLS, e o protocolo também oferece aos clientes uma maneira de autenticar servidores.
Por ser o substituto do Secure Socket Layer, é utilizado para comunicação segura (SSL). A implementação de serviços da Web RESTful é bem-sucedida com HTTPS porque coopera efetivamente com TLS e SSL.
O REST herda as características do protocolo que implementa, o que é uma coisa a ser observada aqui. Como resultado, as proteções de segurança dependem do protocolo que o REST usa.
20. Métodos idempotentes: o que são? Como isso se aplica ao mundo dos serviços web RESTful?
Quando o URI é o mesmo, alguns métodos HTTP em uma solicitação têm o mesmo impacto no servidor, independentemente de serem entregues uma ou várias vezes. Técnicas idempotentes são como elas são conhecidas.
Por exemplo, não importa quantas vezes um URI usando o método GET seja executado, o servidor sempre terá o mesmo resultado. Os métodos idempotentes incluem GET, PUT e PATCH, para citar alguns.
Métodos HTTP idempotentes são alguns dos utilizados pelo RESTful Aplicativos da web. Eles são necessários para garantir consistência nas atividades dos web services RESTful.
Os clientes que usam APIs REST podem cometer erros de código que forçam uma API REST a fazer solicitações repetidas acidentalmente. Essas chamadas têm o potencial de fazer mau uso dos recursos.
21. Qual é a funcionalidade da autenticação básica HTTP?
Ao utilizar a Autenticação Básica como parte das APIs, o usuário deve enviar o nome de usuário e a senha, que são concatenados pelo navegador na forma “username: password” e codificados em base64.
Em cada solicitação HTTP do navegador, o valor codificado é entregue como o valor do cabeçalho “Authorization”. Como as credenciais são apenas codificadas, é recomendável usar este formulário ao enviar solicitações HTTPS, pois elas não são seguras e podem ser interceptadas por qualquer pessoa se os protocolos de segurança não forem utilizados.
22. Você acha que o GraphQL é a melhor escolha para criar arquitetura de microsserviços?
Microsserviços e GraphQL funcionam perfeitamente porque o GraphQL mantém sua arquitetura de microsserviço em segredo de seus clientes.
No front-end, você deseja que todos os seus dados venham de uma única API, enquanto no back-end, deseja dividi-los em microsserviços. A melhor técnica que conheço para conseguir ambos é usando o GraphQL.
Ele permite que você divida seu back-end em microsserviços enquanto ainda fornece a cada aplicativo uma única API e permite junções entre dados de vários serviços.
23. Quais são as principais diferenças entre os métodos HTTP seguros e idempotentes?
Métodos idempotentes produzem o mesmo resultado quando invocados uma ou várias vezes por meio da mesma solicitação. O método PUT é idempotente.
Todas as formas seguras são idempotentes, mas nem todos os métodos idempotentes são seguros, pois os métodos seguros não alteram os recursos. Por exemplo, GET é seguro, pois apenas recupera dados e não altera o recurso.
Além disso, é idempotente, o que significa que sempre retornará a mesma resposta quando invocado.
24. O que a API JAX-RS implica nas Classes de Recurso Raiz RESTful?
O Java Enterprise Edition fornece classes e interfaces que atendem aos requisitos da API JAX-RS. Com o auxílio do JAX-RS, a criação de web services Java no estilo arquitetural REST é facilitada.
Na API JAX-RS, as classes de recursos raiz são apenas “objetos java antigos simples” ou POJO. Para implementar os recursos da web necessários, eles empregam anotações JAX-RS.
Eles têm anotações @path ou pelo menos um de seus métodos tem anotações @path. Eles podem ser resumidos como classes Java com métodos para lidar com terminais de API.
25. O que exatamente é o Postman e por que ele é usado?
Uma ferramenta de desenvolvimento de API chamada Postman é usada para criar, testar e modificar APIs. Essa ferramenta pode ser usada por desenvolvedores para qualquer recurso que eles precisem para uma API. Simplifica e facilita o trabalho dos desenvolvedores.
O Postman facilita fazer uma variedade de consultas HTTP, incluindo GET, POST, PUT e PATCH, salvar ambientes para uso posterior e converter APIs em código em vários idiomas diferentes.
Cada estágio do ciclo da API é simplificado com o Postman e a cooperação é simplificada para um desenvolvimento de API mais rápido.
Além disso, permite que os desenvolvedores gerenciem a documentação, especificações, casos de teste, processos e catálogos de API.
26. Como as APIs REST são mantidas seguras?
Como as APIs REST não usam proteções de segurança tão rigorosas quanto as APIs SOAP, os dados confidenciais não devem ser enviados ou recuperados usando-as.
No entanto, APIs REST confiáveis continuam a integrar controles de segurança para transmissões de dados seguras e confiáveis.
- Autenticação e autorização: toda e qualquer solicitação feita à API deve passar por essas duas verificações. Verificar a identidade do cliente por meio de autenticação e validar se ele tem autoridade para acessar os recursos solicitados por meio de autorização são dois processos diferentes.
- Validação: Antes que a API conceda acesso aos seus recursos, as solicitações ainda devem ser verificadas quanto a códigos possivelmente nocivos após autenticação e autorização. Assim, um servidor estaria aberto a um ataque de injeção.
- Validação: Antes que a API conceda acesso aos seus recursos, as solicitações ainda devem ser verificadas quanto a códigos possivelmente nocivos após autenticação e autorização. Assim, um servidor estaria aberto a um ataque de injeção.
- Criptografia: A criptografia TLS/SSL protege a conexão entre o cliente e o servidor e impede que hackers interceptem solicitações e respostas.
- Técnicas de limitação de taxa, como limites e limitação, protegem os servidores de ataques de força bruta, como DDoS, que visam degradá-los ou travar.
- Nenhuma informação confidencial nos URIs: os URIs dos recursos não devem conter dados protegidos (como nome de usuário, senha ou token de autenticação).
Conclusão
Parabéns! Várias perguntas de entrevista de API REST básicas a complexas e suas respectivas soluções estão agora ao seu alcance.
Agora que você tem um bom conceito de como responder a algumas das perguntas típicas da entrevista da API REST, você pode continuar respondendo às entrevistas. O próximo passo depende dos seus objetivos.
Visite a Série de Entrevistas com Hashdork para se preparar para entrevistas.
Deixe um comentário