Application Programming Interface tem função de intermediar comunicação universal entre diferentes sistemas, assim como do banco de dados com o próprio sistema (interno ou externo), utilizando protocolo de comunicação HTTP (XML/JSON), requisitados via URL específica, independente da tecnologia do sistema que irá consumí-la (acessá-la).

Representational State Transfer. Técnica que consiste em princípios que, quando seguidos, permitem a criação de projetos (web services) com interfaces/arquitetura bem definidas (padrão REST), utilizando novos métodos/verbos REST HTTP:
Nativamente, o HTTP é Stateless (Não guarda estado). Com o uso de REST, permitirá que as requisições HTTP armazenem dados (estados). Os Web services que estão em conformidade com o estilo arquitetural REST são denominados Web services RESTful. Um sistema é considerado RESTful quando segue corretamente o padrão REST.
Requisição HTTP do dispositivo ao servidor web. Incluem dados de pares chave/valor na URI (query string).
Ex: /api/produtos?order=desc&limit=5
Versão da API: /api/v1/produtos
Resposta HTTP do servidor web ao dispositivo, sob sua requisição.
JWT (JSON Web Token) é padrão (RFC 7519) de token stateless (geralmente do tipo Bearer token) usado para autenticação/autorização na troca de informações entre cliente e servidor (HTTP request/response) de forma segura (geralmente em conjunto com protocolo OAuth2), assinadas com Message Authentication Code (HMAC). Access Token é token de curta duração com expiração, usado para acessar recursos protegidos da API, enviado em cada request no header Authorization. Refresh Token é token de longa duração de expiração, usado apenas para gerar novos access tokens. Sua estrutura consiste em header (tipo de token e algoritmo de assinatura), payload (dados claims, como subject, issuedAt, expiration) e signature (assinatura criptográfica do header e payload usando secret key). JWT amplamente utilizado em sistemas web RESTful (arquitetura REST) stateless (sem manter estado no servidor), com funções encoder (criação) e decoder (leitura).
Request de usuário não autenticado será rejeitada (401 Unauthorized). Primeiramente, usuário regitra suas credenciais (/api/auth/register), depois acessa (/api/auth/login) para obter access token, para então acessar endpoints protegidos. Usuário pode gerar refresh token (/api/auth/refresh) quando o access token expirar. Por fim, usuário pode fazer logout (/api/auth/logout) com exclusão do refresh token.
Em breve.
Elaborado por Mateus Schwede
ubsocial.github.io