Sobre | O que aprendi | Tecnologias | Requisitos | Iniciando | Dica | Onde aprender mais | Créditos | Licença | Desenvolvedora
Este projeto foi desenvolvido para aprender e praticar os conceitos de API, REST e RESTful.
API (Application Programming Interface - Interface de Programação de Aplicações) é um conjunto de rotinas e padrões definidos por uma aplicação e disponível para outras aplicações.
Quais são os benefícios de se utilizar uma API?
- Dá para desenvolver múltiplos front-ends e utilizar um mesmo back-end. Por exemplo, um site e uma aplicação mobile podem acessar simultaneamente o mesmo back-end;
- Possibilita o uso de um protocolo de comunicação padronizado, pois permite que tanto aplicações web como mobile se comuniquem com a mesma estrutura.
Mas, você pode estar se perguntando, de que forma é possível que um site e um aplicativo tenham acesso ao mesmo conteúdo e do mesmo modo? A resposta é simples: através do uso de arquivos JSON.
- JSON
Arquivos do tipo JSON (JavaScript Object Notation - Notação de Objetos JavaScript) possuem uma formatação leve de troca de dados que é facilmente lida por humanos e entendida por máquinas.
Veja o exemplo abaixo:
{
"nome": "Luiza",
"idade": 21,
"interesses": ["programação", "design"]
}
Para saber mais sobre JSON:
Mas o que seria o "REST" do API REST?
- REST
REST (Representational State Transfer - Transferência de Estado Representacional) é um conjunto de princípios de arquitetura que permitem a criação de um projeto com interfaces bem definidas.
Características do REST:
—> Está muito ligado a dar semântica às requisições realizadas a um servidor. Com REST, a transferência de dados é feita de maneira mais intuitiva;
—> A transferência de dados é, geralmente feita com o uso do protocolo HTTP;
—> Ele delimita algumas obrigações relacionadas a transferências de dados.
Padrões REST
—> [Client-server] O cliente e o servidor (armazenamento de dados) precisam estar separados;
—> [Stateless] Cada requisição feita deve conter todas as informações necessárias para que o servidor entenda e possa respondê-la. O servidor não pode armazenar um estado;
—> [Cacheable] As respostas de uma requisição devem ser explícitas ao dizer se a requisição pode ou não ser cacheada (armazenada) pelo cliente;
—> [Layered System] O cliente acessa um endpoint sem precisar saber da complexidade, de quais passos estão sendo necessários para o servidor responder a requisição ou quais outras camadas o servidor está lidando para que a requisição seja respondida;
—> [Uniform Interface] É ser uniforme na nossa interface, por exemplo, ao usar corretamente os verbos HTTP (get, post, put, delete etc.) ou optar pelo padrão de usar JSON e não usar outros tipos, como XML ou outros formatos;
—> [Code on demand (optional)] Permite a aplicação pegar códigos, como javascript, e executar no cliente.
- RESTful
É a capacidade de determinado sistema aplicar os padrões de REST.
As seguintes tecnologias foram utilizadas nesse projeto:
Antes de começar 🏁, você precisa ter o Git e o Node instalados.
# Clone este projeto.
$ git clone https://github.com/LissandraRodrigues/API
# O acesse.
$ cd API
# Instale as dependências.
$ yarn install
# Execute o projeto.
$ yarn dev
Utilize o Insomnia, pois ele é um cliente HTTP que permite fazermos requisições para API sem precisar utilizar um browser.
Use a configuração que eu utilizei através do botão abaixo:
- Meu artigo no Notion;
- O que é API? REST e RESTful? (Youtube - Rocketseat);
- O que é API? REST e RESTful? Conheça as definições e diferenças;
- Tipos de Parâmetros nas requisições REST;
- Masterizando o Insomnia.
Os dados usados na aplicação com o arquivo JSON foram retirados desse site.
Este projeto está sob a licença do MIT. Para saber mais, veja em LICENSE.
Feito por Luiza Lissandra 🚀