Escolar Documentos
Profissional Documentos
Cultura Documentos
Linguagens de
Framework
programação
Sistemas
Dispositivos
operacionais
API
Linguagens de
Framework
programação
Sistemas
Dispositivos
operacionais
APIs HTTP
Cliente
get /treinaweb/cursos
API HTTP
200 OK
Content-Type: application/json
{[curso1, curso2, cursoN]}
post /treinaweb/cursos
Content-Type: application/json
{
“nome”: “PHP”,
“carga”: 10
Cliente }
API HTTP
200 OK
Content-Type: application/json
{
“id”: 1234
“nome”: “PHP”,
“carga”: 10
}
REST
REpresentational State Transfer
Roy Fielding
Características do REST
● Stateless
● Modelo cliente servidor
● Transparente a tecnologia, linguagem e framework
● Cacheavel
● Independente do formato de transmissão de dados
O que utilizamos no REST
● Recursos
● Métodos HTTP
● Códigos de status
● hypermedia
Princípios REST
http://meusistema.com.br/api/ clientes
http://meusistema.com.br/api/ funcionarios
http://meusistema.com.br/api/ produtos
Métodos HTTP
Obter dados http://meusistema.com.br/api/cursos GET
Atualização
http://meusistema.com.br/api/cursos PUT
total
Atualização
http://meusistema.com.br/api/cursos PATCH
parcial
Atualização
/atualizarCurso POST 200
total
Atualização
/atualizarParcialCurso POST 200
parcial
Atualização
/cursos/atualizar POST 200
total
Atualização
/cursos/atualizar/parcial POST 200
parcial
Atualização
/cursos PUT 200
total
Atualização
/cursos PATCH 200
parcial
Autenticação Autorização
Diz quem você é Diz o que você pode fazer
Diferenças entre autenticação e autorização
Autenticação e autorização para APIs
● Autenticação básica HTTP
● Chave de API
● OAuth
● Tokens JWT
Operações além do CRUD
Tratar relacionamentos
Obter aulas
/cursos/1/aulas GET 200
do curso
Criar aula no
/cursos/1/aulas POST 201
curso
Atualizar uma
/cursos/1/aulas/1 PATCH 200
aula no curso
Excluir uma
aula no curso
/cursos/1/aulas/1 DELETE 200
Excluir todas
aulas no curso
/cursos/1/aulas DELETE 200
Tratando como atributo
Estado do
/cursos/1/ativo PATCH 200
curso
Aprovação
/cursos/1/aprovado PATCH 200
do curso
Tratando como recurso
Definir Detalhes
de um curso
/cursos/1/detalhes PATCH 200
Obter Detalhes
de um curso
/cursos/1/detalhes GET 200
Definir Endereço
de um cliente /clientes/1/enderecos PATCH 200
Obter Endereço
de um cliente /clientes/1/enderecos GET 200
Autenticação e autorização em
APIs
Dicas de segurança
● Sempre utilize HTTPS
● Não passe dados de segurança via URL
● Utilize Rate Limit
● Sempre validar todos os dados recebidos
● Utilizar um API Gateway