O que é a API REST? – Um guia abrangente para APIs RESTful

Zulaikha Geer Segue 18 de junho · 11 min ler O que é a API REST? – Edureka

Desde a invenção da internet, temos utilizado diferentes aplicativos e páginas da web para obter dados de vários recursos. No entanto, você já pensou, de onde vêm esses dados? Bem, são os servidores de onde obtemos os dados. Portanto, neste artigo sobre o que é a API REST, vamos ver como um cliente se comunica com os servidores para extrair as informações necessárias.

Os tópicos a seguir serão abordados neste artigo:

  • Necessidade da API REST
  • O que é a API REST?
  • Princípios da API REST
  • Métodos da API REST
  • Como criar uma API REST?

Agora, antes de definir a API REST para você, deixe-me guiá-lo por um exemplo para entender a necessidade da API REST.

Necessidade da API REST

Considere um cenário em que você está usando o aplicativo Book My Show. Agora, obviamente, esse aplicativo precisa de muitos dados de entrada, pois os dados presentes no aplicativo nunca são estáticos. Ou são filmes sendo lançados com frequência ou várias cidades exibindo filmes de idiomas diferentes em vários momentos do dia. Nunca é estático, o que implica o fato de que os dados estão sempre mudando nesses aplicativos.

Agora, de onde você acha que obtemos esses dados?

Bem, esses dados são recebidos do servidor ou mais comumente conhecidos como um servidor da Web. Assim, o cliente solicita ao servidor as informações necessárias, por meio de uma API, e o servidor envia uma resposta ao cliente.

Aqui, a resposta enviada ao cliente está na forma de uma página da Web em HTML. Mas, você acha que esta é uma resposta adequada que você esperaria quando você envia uma solicitação?

Bem, estou assumindo o fato de que você diria NÃO. Desde então, você preferiria que os dados sejam retornados na forma de formato estruturado, em vez da página da Web completa.

Portanto, por essas razões, os dados retornados pelo servidor, em resposta à solicitação do cliente, estão no formato JSON ou XML. O formato JSON e XML tem uma estrutura hierárquica adequada de dados.

Agora, isso parece bem simples, certo?

Mas, a única questão que está presente neste quadro até agora é que você tem que usar muitos métodos para obter as informações necessárias. Para o fato, usando esses métodos para recuperar informações, torna-se bastante complicado quando você requer dados complexos.

Então, é aí que a API REST entra em cena. A API REST cria um objeto e depois envia os valores de um objeto em resposta ao cliente.

Agora que você sabe a necessidade do REST, neste artigo, vamos ver a API O que é REST?

O que é a API REST?

REST sugere criar um objeto dos dados solicitados pelo cliente e enviar os valores do objeto em resposta ao usuário. Por exemplo, se o usuário estiver solicitando um filme em Bangalore em determinado local e hora, você poderá criar um objeto no lado do servidor.

Então, aqui, você tem um objeto e está enviando o estado de um objeto. É por isso que o REST é conhecido como Representational State Transfer.

Se eu tiver que definir REST, então, Representational State Transfer, também conhecido como REST, é um estilo de arquitetura, bem como uma abordagem para fins de comunicação que é frequentemente usada em vários desenvolvimentos de serviços da Web.

O estilo arquitetural do REST ajuda a aproveitar o menor uso de largura de banda para tornar um aplicativo mais adequado para a Internet. É frequentemente considerado como a “ linguagem da internet ” e é completamente baseado nos recursos.

Para entender melhor, vamos nos aprofundar um pouco e ver exatamente como funciona uma API REST. Basicamente, a API REST divide uma transação para criar pequenos módulos. Agora, cada um desses módulos é usado para endereçar uma parte específica da transação. Essa abordagem fornece mais flexibilidade, mas exige muito esforço para ser construída a partir do zero.

Portanto, agora que você sabe o que é a API REST, vamos entender as restrições ou princípios que devem ser satisfeitos para que um aplicativo seja considerado como API REST.

Princípios da API REST

Bem, existem seis princípios fundamentais estabelecidos pelo Dr. Fielding, que foi o único a definir o design da API REST em 2000. Abaixo estão os seis princípios orientadores do REST:

Sem estado

As solicitações enviadas de um cliente para um servidor conterão todas as informações necessárias para que o servidor entenda as solicitações enviadas do cliente. Isso pode ser uma parte da URL, parâmetros de string de consulta, corpo ou até mesmo cabeçalhos. A URL é usada para identificar exclusivamente o recurso e o corpo mantém o estado do recurso solicitante. Depois que o servidor processa a solicitação, uma resposta é enviada ao cliente por meio de corpo, status ou cabeçalhos.

Servidor cliente

A arquitetura cliente-servidor permite uma interface uniforme e separa os clientes dos servidores. Isso aprimora a portabilidade em várias plataformas, bem como a escalabilidade dos componentes do servidor.

Interface Uniforme

Para obter a uniformidade em todo o aplicativo, o REST possui as seguintes quatro restrições de interface:

  • Identificação de recursos
  • Manipulação de recursos usando representações
  • Mensagens auto-descritivas
  • Hipermídia como o mecanismo do estado do aplicativo

Em cache

Para fornecer um melhor desempenho, os aplicativos geralmente são colocados em cache. Isso é feito rotulando a resposta do servidor como armazenável em cache ou não armazenável em cache, de maneira implícita ou explícita. Se a resposta for definida como armazenável em cache, o cache do cliente poderá reutilizar os dados de resposta para respostas equivalentes no futuro.

Sistema em camadas

A arquitetura de sistema em camadas permite que um aplicativo seja mais estável, limitando o comportamento do componente. Esse tipo de arquitetura ajuda a aprimorar a segurança do aplicativo, já que os componentes de cada camada não podem interagir além da próxima camada imediata em que estão. Além disso, ele permite o balanceamento de carga e fornece caches compartilhados para promover a escalabilidade.

Código sob demanda

Esta é uma restrição opcional e é usada menos. Ele permite que um código de cliente ou applets sejam baixados e usados no aplicativo. Em essência, simplifica os clientes criando um aplicativo inteligente que não depende de sua própria estrutura de código.

Agora, que você conhece os princípios por trás da API REST, em seguida, vamos ver os métodos da API REST.

Métodos da API REST

Todos nós trabalhando com a tecnologia da web, fazemos operações CRUD. Quando digo operações CRUD, quero dizer que criamos um recurso, lemos um recurso, atualizamos um recurso e excluímos um recurso. Agora, para fazer essas ações, você pode realmente usar os métodos HTTP, que não são nada além dos métodos da API REST. Consulte abaixo.

Agora que você sabe o que é uma API REST e tudo o que precisa se preocupar para fornecer um aplicativo eficiente, vamos aprofundar e ver o processo de criação da API REST.

Como criar uma API REST?

Nesta demonstração prática, criarei uma aplicação CRUD REST simples usando o Node.js. Para construir este aplicativo, você precisará instalar o seguinte:

  1. Node.js
  2. Express.js
  3. Joi
  4. nodemon (monitor do nó)

Para este hands-on, eu estarei usando o WebStorm IDE para escrever e executar os códigos. Você pode usar qualquer IDE ou editor de código de acordo com a sua escolha. Então vamos começar.

Etapa 1: Crie um diretório de projeto, que consistirá em todos os arquivos presentes no projeto. Em seguida, abra o prompt de comandos e navegue até o diretório do projeto. Consulte abaixo.

Passo 2: Agora, chame npm usando o comando abaixo. Isso inicializará os módulos npm no seu sistema.

 npm init 

Uma vez que você aperte enter, o Node.js pedirá que você insira alguns detalhes relacionados ao projeto. Esses detalhes serão basicamente os metadados do seu projeto. Consulte abaixo.

Aqui você pode definir seu ponto de entrada junto com várias outras informações. Para esta demonstração, usarei o script.js como um ponto de entrada.

Em seguida, solicitará uma confirmação dos dados que você deve ter mencionado. Basta pressionar Y para confirmar. Consulte abaixo.

Passo 3: Em seguida, você tem o yo install Etapa 3: Express.js usando o comando abaixo:

 npm i express 

Express é uma estrutura da Web que pode ser usada junto com o Node.js. Essa estrutura da Web permitirá que você crie APIs Restful, com a ajuda de métodos auxiliares, camadas intermediárias para configurar seu aplicativo.

Passo 3.1: Da mesma forma, você tem que instalar o Joi .

 npm i joi 

Este pacote permite que você crie blueprints para objetos JavaScript que armazenam informações para garantir a validação das principais informações.

Passo 3.2: Finalmente, instale o nodemon do pacote de monitoramento de nós , usando o comando abaixo.

 npm i -g nodemon 

Nodemon, fica de olho em todos os arquivos com qualquer tipo de extensão presente nesta pasta. Além disso, com o nodemon no relógio, você não precisa reiniciar o servidor Node.js toda vez que qualquer alteração for feita. O Nodemon irá implicitamente detectar as alterações e reiniciar o servidor para você.

package.json

 { 
"nome": "restapidemo",
"version": "1.0.0",
"description": "Criação da API REST",
"main": "script.js",
"scripts": {
"test": "echo " Erro: nenhum teste especificado "& amp; & amp; exit 1"
}
"autor": "sahiti_kappagantula",
"licença": "ISC",
"dependências": {
"express": "^ 4.17.1",
"joi": "^ 14.3.1"
}
}

script.js

 const express = require ('express'); // Import Express 
const Joi = require ('joi'); // Importar Joi
const app = express (); // Create Express Application na variável de aplicativo
app.use (express.json ()); // usou o arquivo json

// Dar dados ao servidor
clientes const = [
{title: 'George', id: 1},
{title: 'Josh', id: 2},
{title: 'Tyler', id: 3},
{title: 'Alice', id: 4},
{title: 'Candice', id: 5}
]

// Leia manipuladores de solicitações
// Exibe a mensagem quando o URL consistir em '/'
app.get ('/', (req, res) => {
res.send ('Bem-vindo à API REST do Edurekas!');
});
// Exibe a lista de clientes quando o URL consiste em clientes da API
app.get ('/ api / customers', (req, res) => {
res.send (clientes);
});
// Exibe a informação do cliente específico quando você menciona o id.
app.get ('/ api / customers /: id', (req, res) => {
const cliente = customers.find (c => c.id === parseInt (req.params.id));
// Se não houver um ID de cliente válido, exiba um erro com a seguinte mensagem
if (! customer) res.status (404) .send ('<h2 style = "família da fonte: Malgun Gothic; cor: darkred;"> Opa ... Não consigo encontrar o que você está procurando! </ h2>' );
res.send (cliente);
});

// CREATE Request Handler
// CRIAR Nova Informação do Cliente
app.post ('/ api / customers', (req, res) => {

const {error} = validateCustomer (req.body);
if (erro) {
res.status (400) .send (error.details [0] .message)
Retorna;
}
// Incrementar o ID do cliente
cliente const = {
id: customers.length + 1,
título: req.body.title
};
customers.push (cliente);
res.send (cliente);
});

// Atualizar manipulador de solicitações
// Atualizar as informações existentes do cliente
app.put ('/ api / customers /: id', (req, res) => {
const cliente = customers.find (c => c.id === parseInt (req.params.id));
if (! customer) res.status (404) .send ('<h2 style = "família da fonte: Malgun Gothic; cor: darkred;"> Not Found !! </ h2>');

const {error} = validateCustomer (req.body);
if (erro) {
res.status (400) .send (error.details [0] .message);
Retorna;
}

customer.title = req.body.title;
res.send (cliente);
});

// Excluir manipulador de solicitações
// Excluir detalhes do cliente
app.delete ('/ api / customers /: id', (req, res) => {

const cliente = customers.find (c => c.id === parseInt (req.params.id));
if (! customer) res.status (404) .send ('<h2 style = "família da fonte: Malgun Gothic; cor: darkred;"> Not Found !! </ h2>');

índice const = customers.indexOf (customer);
customers.splice (índice, 1);

res.send (cliente);
});
// Validar Informação
função validateCustomer (customer) {
esquema const = {
título: Joi.string (). min (3) .requirido ()
};
retornar Joi.validate (customer, schema);

}

// VARIÁVEL DO PORTAL AMBIENTE
porta const = process.env.PORT || 8080;
app.listen (port, () => console.log (`Ouvindo na porta $ {port} ..`));

Passo 4: Agora, o próximo passo é verificar se os manipuladores estão funcionando corretamente ou não. Para isso, usaremos uma extensão do Chrome chamada Postman. Para instalar o Postman, você pode visitar aqui e clicar em Adicionar ao Chrome .

Passo 5: Agora, depois de instalar o Postman, abra-o para testar sua aplicação.

Etapa 6: Mas antes disso, você precisa iniciar seu servidor. Para iniciar seu servidor, digite o seguinte comando.

 node script.js 

Você veria a saída como abaixo:

Resultados

Vamos começar testando o método GET.

Passo 7: Para fazer isso, você precisa selecionar GET na lista suspensa, digitar o URL definido e clicar em enviar .

Se o seu código estiver funcionando bem, você verá a lista de todos os clientes que adicionamos manualmente em nosso código. Na figura abaixo, você pode ver como é o resultado. Aqui eu mencionei o URL para ser localhost: 8080 / api / customers

Passo 8: Agora, vamos tentar adicionar um novo cliente à nossa pilha de clientes. Para isso, selecione ' POST ' na lista suspensa e digite o URL definido para o método POST. Em seguida, clique em ' Body ', selecione ' raw ' e selecione ' JSON ' na lista suspensa, como mostrado na imagem abaixo. Agora, na área de texto, digite o nome do seu cliente como mostrado e clique em enviar.

Se o método POST estiver funcionando bem, o corpo da resposta conterá o nome do novo cliente junto com o ID do cliente. Aqui, se você observar, mencionamos apenas o nome, mas não fornecemos o ID do cliente. Isso implica que o ID do cliente é incrementado automaticamente.

Passo 9: Agora, vamos tentar atualizar um nome de cliente. Digamos que nos preparemos para atualizar o nome do ID do cliente = 3. Portanto, para atualizar os dados, primeiro é necessário selecionar ' PUT ' na tabela suspensa e inserir o URL da solicitação PUT junto com o ID do cliente que você deseja atualizar. Em seguida, no " Corpo ", digite o novo nome do cliente e aperte enter.

Isso fornecerá uma resposta com o ID do cliente e o nome do cliente atualizado .

Passo 10: Finalmente, vamos enviar uma solicitação ' DELETE ' para excluir um registro existente. Para isso, selecione DELETE na lista suspensa e digite o URL do manipulador de solicitações de exclusão, juntamente com os detalhes do cliente, que você deseja remover e aperte enter. Digamos que eu queira excluir os detalhes de um cliente com id = 3. Se a transação for bem-sucedida, você verá os detalhes completos da entrada que você removeu no corpo da resposta.

Agora, vamos enviar uma solicitação GET para nossa lista final de clientes.

Como você pode ver na captura de tela acima, o corpo da resposta contém um total de cinco clientes com o ID do cliente 3 em falta, pois já excluímos essa entrada.

Com isso, chegamos ao final deste artigo sobre "O que é a API REST?" Se você deseja conferir mais artigos sobre as tecnologias mais populares do mercado, como Inteligência Artificial, Python, Ethical Hacking, consulte o site oficial da Edureka. local.

Procure por outros artigos desta série que expliquem os vários outros aspectos do Desenvolvimento da Web.

1. Tutorial ReactJS

2. Reagir Componentes

3. React Router v4 Tutorial

4. React Redux Tutorial

5. Tutorial Angular

6. Tutorial da Diretriz Angular

7. Animando aplicativos AngularJS com a diretiva ngAnimate

8. Tutorial do PHP

9. JQuery Tutorial

10. Tutorial NodeJS

11. 10 principais frameworks JavaScript

12. Construa um aplicativo CRUD usando o Node.js e o MySQL

13. Construa o Aplicativo CRUD Usando o Node.JS e o MongoDB

14. Construa a API REST com o Node.js

15. Flutter vs Reagir Nativa