Conceitos aprendidos sobre API, REST e RESTful
Acronimo de Application Programming Interface (Interface de Programação de Aplicações), é basicamente um conjunto de rotinas e padrões estabelecidos por uma aplicação, para que outras aplicações possam utilizar as funcionalidades desta aplicação.
- Responsável por estabelecer comunicação entre diferentes serviços.
- Meio de campo entre as tecnologias.
- Intermediador para troca de informações.
Exemplo:
- Cliente (Client)
- Garçon (pedidos, levar seus pedidos, para a cozinha) (API)
- Cozinha (Server)
Um acrônimo para REpresentational State Transfer (Transferência de Estado Representativo).
Será feita a transferência de dados de uma maneira simbólica, figurativa, representativa, de maneira didática.
A transferência de dados, geralmente, usando o protocolo HTTP.
O Rest, delimita algumas obrigações nessas transferências de dados.
RESTful, é a aplicação dos padrões REST.
Client-server: Separação do cliente e do armazenamento de dados (servidor), dessa forma, poderemos ter uma portabilidade do nosso sistema, usando o React para WEB e React Native para o smartphone, por exemplo.
Stateless: Cada requisição que o cliente faz para o servidor, deverá conter todas as informações necessárias para o servidor entender e responder (RESPONSE) a requisição (REQUEST).
Cacheable: As respostas para uma requisição, deverão ser explicitas ao dizer se aquela requisição, pode ou não, ser cacheada 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 estará lidando, para que a requisição seja respondida.
Uniform Interface: Manter a uniformidade na criação da interface de comunicação da sua API.
Code on demand (optional): Dá a possibilidade da nossa aplicação pegar códigos, como o javascript, por exemplo, e executar no cliente.
- Utilizar verbos HTTP para nossas requisições
- Utilizar plural ou singular na criação dos endpoints? NÃO IMPORTA! use um padrão.
- Não deixar barra no final do endpoint
- Nunca deixe o cliente sem resposta
- GET: Receber dados de um Resource
- POST: Enviar dados ou informações para serem processados por um Resource
- PUT: Atualizar dados de um Resource
- DELETE: Deletar um Resource
- 1xx: Informação
- 2xx: Sucesso
- 200: OK
- 201: CREATED
- 204: Não tem conteúdo PUT POST DELETE
- 3xx: Redirection
- 4xx: Client Error
- 400: Bad Request
- 404: Not Found
- 5xx: Server Error
- 500: Internal Server Error