Skip to content

Este projeto foi feito para aprender e praticar API, REST e RESTful.

License

Notifications You must be signed in to change notification settings

LissandraRodrigues/API

Repository files navigation

API

PRs Welcome

Sobre   |   O que aprendi   |   Tecnologias   |   Requisitos   |   Iniciando   |   Dica   |   Onde aprender mais   |   Créditos   |   Licença   |   Desenvolvedora


🎯 Sobre

Este projeto foi desenvolvido para aprender e praticar os conceitos de API, REST e RESTful.

💪 O que aprendi

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?

  1. 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;
  2. 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:

💡Introdução ao 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.

🚀 Tecnologias

As seguintes tecnologias foram utilizadas nesse projeto:

✅ Requisitos

Antes de começar 🏁, você precisa ter o Git e o Node instalados.

🏁 Iniciando

# 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

💡 Dica

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:

Run in Insomnia}

📚 Onde aprender mais

👊 Créditos

Os dados usados na aplicação com o arquivo JSON foram retirados desse site.

🔓 Licença

Este projeto está sob a licença do MIT. Para saber mais, veja em LICENSE.


Feito por Luiza Lissandra 🚀

 

Voltar para o início

About

Este projeto foi feito para aprender e praticar API, REST e RESTful.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published