apis rest - introdução e alguns conceitos

18
API REST

Upload: felix-costa

Post on 24-Jan-2017

46 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: APIs REST - Introdução e alguns conceitos

API REST

Page 2: APIs REST - Introdução e alguns conceitos

Quem sou

- Full-stack developer- Sotero Tech- @fxcosta- fxcosta.github.io

Page 3: APIs REST - Introdução e alguns conceitos

O que é uma API?

- Application Programming Interface

- Uma interface de comunicação entre sistemas- System calls, por exemplo

- API vs Web API / Web Services

Page 4: APIs REST - Introdução e alguns conceitos
Page 5: APIs REST - Introdução e alguns conceitos

Por que ter uma API?

- Expor certos dados e recursos é uma estratégia de negócios e inovação (Ricardo Peloi).

- Grandes players tem uma API aberta

- Integrar nossa plataforma a terceiros (e-commerce, SaaS)- Gerar mais mercado e expandir o público-alvo- Gerar desenvolvimento da plataforma para outros meios- Organização interna do setor de TI

Page 6: APIs REST - Introdução e alguns conceitos

REST APIs

- Representation State Transfer- estilo arquitetural- regras e convenções

- Criado por Roy Fielding em sua tese de doutorado em filosofia- Co-autor do HTTP o/

- REST é guiado pelas boas práticas de uso do HTTP- Uso adequado dos métodos HTTP, URLs, Headers, etc.

- REST não é só pra API

Page 7: APIs REST - Introdução e alguns conceitos

Cliente-Servidor

- O que acontece quando eu digito www.semanacts.com.br no meu navegador?

Page 8: APIs REST - Introdução e alguns conceitos

Recurso

- Marco zero: em REST tudo é recurso. Representação!

- Recurso: representação de um objeto virtual- uma image, uma coisa da vida real, uma coleção de objetos, um cliente….

- Pode ser qualquer coisa. Depende do contexto e do mapeamento

Page 9: APIs REST - Introdução e alguns conceitos

URLs

- Identificam os recursos de forma única, através de um determinado caminho- http://localhost:8080/cervejas

- Devem ser amigáveis, semânticas e convencionalmente no plural- http://localhost:8080/cervejas - retornam todas as cervejas- http://localhost:8080/cervejas/2 - retorna a cerveja de identificar único 2- http://localhost:8080/cervejas - crio uma nova cerveja- http://localhost:8080/cervejas/2 - atualizo uma cerveja existente, no caso a de ID 2

- Relacionamentos:- http://localhost:8080/paises/2/cervejas - todas as cervejas do pais de ID 2- http://localhost:8080/paises/2/cervejas/3/premios - prêmios cerveja de ID 3 do país de ID 2

Page 10: APIs REST - Introdução e alguns conceitos

Métodos HTTP

- Existem 7 métodos além do GET- POST, PUT/PATCH, DELETE, OPTIONS, HEAD, TRACE, CONNECT

- Especificam a ação que queremos tomar em cima de algum recurso- GET http://localhost:8080/cervejas - GET http://localhost:8080/cervejas/2 - POST http://localhost:8080/cervejas- PUT http://localhost:8080/cervejas/2- DELETE http://localhost:8080/cervejas/2

- HTTP header- GET /cervejas HTTP/1.1- Host: localhost:8080- Accept: text/html

-

Page 11: APIs REST - Introdução e alguns conceitos
Page 12: APIs REST - Introdução e alguns conceitos

URLs com filtros e ordenação

- GET usando query string parameters- /cervejas?pais=alemanha- /cervejas?ordenar=idade,nome

- Filtros comuns devemos usar alias- /cervejas/ativas ao invés de /cervejas?status=ativas

- Seleção de campos- /cervejas?campos=id,nome,status,ano_criacao

- Paginação- /cervejas?pagina=2&limite=30

Page 13: APIs REST - Introdução e alguns conceitos

Códigos de status do HTTP

- Toda requisição feita ao servidor retorna com um código de status.- 1xx - Informacionais- 2xx - Códigos de sucesso- 3xx - Códigos de redirecionamento- 4xx - Erros causados pelo cliente- 5xx - Erros originados no servidor

- 200 - ok; 201 - created- 301 - moved permanently; 303 - See Other- 401 - Unauthorized; 404 - Not found; 405 - Method not allowed- 500 - internal server error; 503 - service unavailable

Page 14: APIs REST - Introdução e alguns conceitos

Tipos de dados: JSON vs XML

Page 15: APIs REST - Introdução e alguns conceitos

REST é muito mais...

Page 16: APIs REST - Introdução e alguns conceitos

Referências

- http://sensedia.com/blog/apis/o-que-sao-apis-parte-1-introducao/- https://rafaell-lycan.com/2015/construindo-restful-api-laravel-parte-1/- https://www.casadocodigo.com.br/products/livro-rest- https://www.youtube.com/watch?v=94YsBCoVE2s

Page 17: APIs REST - Introdução e alguns conceitos

Vamos ao livecoding!

Page 18: APIs REST - Introdução e alguns conceitos