You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Acrônimo 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.
6
+
7
+
- Responsável por estabelecer comunicação entre diferentes serviços.
8
+
- Meio de campo entre as tecnologias.
9
+
- Intermediador para troca de informações.
10
+
11
+
## REST
12
+
13
+
um acrônimo para Representational State Transfer (Transferência de Estado Representativo).
14
+
15
+
Será feita a transferência de dados de uma maneira simbólica, figurativa, representativa, de maneira didática.
16
+
17
+
A transferência de dados, geralmente, usando o protocolo HTTP.
18
+
19
+
O REST delimita algumas obrigações nessas transferências de dados.
20
+
21
+
Resources seria então: Uma entidade ou um objeto.
22
+
23
+
### 6 NECESSIDADES (constraints) para ser RESTful
24
+
25
+
- _Uniform Interface_: Manter uma uniformidade, uma constância, um padrão na construção da interface. Nossa API precisa ser coerente para quem vai consumi-lá. Precisa fazer sentido para o cliente e não ser confusa. Logo, coisas como: o uso correto dos verbos HTTP; endpoints coerentes (todos os endpoints no plural, por exemplo); usar somente uma linguagem de comunicação (json) e não várias ao mesmo tempo; sempre enviar respostas aos clientes; são exemplos de aplicação de uma interface uniforme.
26
+
27
+
- _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.
28
+
29
+
- _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). Exemplo: A sessão do usuário deverá ser enviada em todas as requisições, para saber se aquele usuário está autenticado e apto a usar os serviços, e o servidor não pode lembrar que o cliente foi autenticado na requisição anterior. Nos nossos cursos, temos por padrão usar tokens para as comunicações.
30
+
31
+
- _Cacheable_: As respostas para uma requisição, deverão ser explicitas ao dizer se aquela resquição, pode ou não ser cacheada pelo cliente.
32
+
33
+
- _Layered System_: O cliente acessa a 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.
34
+
35
+
- _Code on demand (optional)_: Dá a possibilidade da nossa aplicação pegar códigos, como o javascript, por exemplo, e executar no cliente.
36
+
37
+
## RESTFUL
38
+
39
+
RESTful, é a aplicação dos padrões REST.
40
+
41
+
## BOAS PRÁTICAS
42
+
43
+
- Utilizar verbos HTTP para nossas requisições.
44
+
- Utilizar plural ou singular na criação dos endpoints? _NÃO IMPORTA!_ use um padrão!!
45
+
- Não deixar barra no final do endpoint
46
+
- Nunca deixe o cliente sem resposta!
47
+
48
+
### VERBOS HTTP
49
+
50
+
- GET: Receber dados de um Resource.
51
+
- POST: Enviar dados ou informações para serem processados por um Resource.
0 commit comments