0% acharam este documento útil (0 voto)
22 visualizações37 páginas

Live de Python #175

O documento aborda conceitos fundamentais sobre APIs e REST, explicando o que são, como funcionam e os principais verbos HTTP utilizados nas requisições. Ele também discute a importância do contrato em uma API e os códigos de resposta que podem ser retornados pelo servidor. Além disso, menciona ferramentas em Python para trabalhar com APIs e a representação de dados, destacando o uso de JSON.

Enviado por

pinatofilho
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
22 visualizações37 páginas

Live de Python #175

O documento aborda conceitos fundamentais sobre APIs e REST, explicando o que são, como funcionam e os principais verbos HTTP utilizados nas requisições. Ele também discute a importância do contrato em uma API e os códigos de resposta que podem ser retornados pelo servidor. Além disso, menciona ferramentas em Python para trabalhar com APIs e a representação de dados, destacando o uso de JSON.

Enviado por

pinatofilho
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 37

REST API

Live de Python # 175


Roteiro

1. API / REST 3. Respostas


Como é uma API? O que é REST? Entendendo os códigos de resposta

2. Verbos 4. Filtros
Como dizer o que eu quero? Como especificar o que eu quero?
picpay.me/dunossauro apoia.se/livedepython PIX

Ajude o projeto
Ademar Peixoto, Alex Lima, Alex Lopes, Alexandre Harano, Alexandre Santos, Alexandre Tsuno, Alexandre
Villares, Alynne Ferreira, Alysson Oliveira, Amaziles Carvalho, André Rocha, Arnaldo Turque, Artur Zalewska, Bruno
Batista, Bruno Oliveira, Caio Nascimento, Carlos Chiarelli, Cleber Santos, César Almeida, Davi Ramos, David
Kwast, Diego Guimarães, Diego Ubirajara, Dilenon Delfino, Donivaldo Sarzi, Elias Soares, Eric Niens, Eugenio
Mazzini, Everton Alves, Fabiano Gomes, Fabio Barros, Fabio Castro, Fabrícia Diniz, Flavkaze Flavkaze, Francisco
Alencar, Franklin Silva, Fábio Serrão, Gabriel Simonetto, Gabriel Soares, Gabriela Santiago, Geandreson Costa,
Guilherme Castro, Guilherme Felitti, Guilherme Ostrock, Henrique Machado, Israel Fabiano, Italo Silva, Johnny
Tardin, Jonatas Leon, Jonatas Oliveira, Jorge Plautz, Jose Mazolini, José Prado, João Lugão, João Schiavon,
Juan Gutierrez, Jônatas Silva, Júlia Kastrup, Kaio Peixoto, Kaneson Alves, Leonardo Cruz, Leonardo Galani,
Leonardo Mello, Lidiane Monteiro, Lorena Ribeiro, Lucas Barros, Lucas Mello, Lucas Mendes, Lucas Teixeira,
Lucas Valino, Luciano Ratamero, Maiquel Leonel, Marcela Campos, Marcelo Rodrigues, Maria Clara, Marina
Passos, Matheus Vian, Natan Cervinski, Nicolas Teodosio, Osvaldo Neto, Patric Lacouth, Patricia Minamizawa,
Patrick Gomes, Paulo Tadei, Pedro Pereira, Peterson Santos, Rafael Lino, Reinaldo Silva, Renan Moura, Revton
Silva, Rodrigo Ferreira, Rodrigo Mende, Rodrigo Vaccari, Ronaldo Silva, Sandro Mio, Silvio Xm, Thiago Araujo,
Thiago Borges, Thiago Bueno, Tyrone Damasceno, Vinícius Bastos, Vítor Gomes, Wendel Rios, Wesley Mendes,
Willian Lopes, Willian Rosa, Wilson Duarte, Yury Barros, Érico Andrei

Obrigado você
Afinal o que é
uma API? API
O que é uma API?
Uma API (Application Programming Interface) é um conjunto de definições
e protocolos usados no desenvolvimento e na integração de aplicações.
O que é uma API?
Uma API é um conjunto de definições e protocolos usados no
desenvolvimento e na integração de aplicações.

Requisição

Cliente Servidor

Resposta
Um contrato
Basicamente uma api é contrato de como os dados serão enviados e
quais respostas vamos obter quando um dado específico for solicitado.
Um contrato
Basicamente uma API é contrato de como os dados serão enviados e
quais respostas vamos obter quando um dado específico for solicitado.

Dados conforme o
contrato

Cliente Servidor

Dados conforme o
contrato
Outra sigla difícil? REST
O que é REST?
REST (Representational State Transfer) é um conjunto de "regras" e
limitações para que a API não seja complexa de mais.

Basicamente o que pedimos a uma API é o seu estado [State] e ela nos
retorna uma Representação [Representational] dele em uma
Transferência [Transfer] de dados.
O que é REST?

Qual seu estado em


relação aos usuários
cadastrados?

Cliente Servidor

Segue:

1, Eduardo, 28 anos
2, Fausto, 3 anos
3, Jorge, 15 anos
Que ferramentas podemos usar em Python?

Falcon
CherryPy AIOHTTO Tornado
Que ferramentas podemos usar em Python?

Falcon
CherryPy AIOHTTO Tornado
pip install flask

Vamos instalar o Flask


Verbos Como dizer o que
eu quero?
Como funciona a comunicação?

Me dá uma coisa aí

Cliente Servidor
Quando pedimos algo
para API, fazemos uma
requisição
GET
Nossa primeiro exemplo
Nossa primeiro exemplo
Tá, OK! Mas como rodar esse código?
pip install httpie

Instalando um cliente
Como conversar com ele?
Nosso servidor, tem um endereço.
(http://localhost)

Tem uma porta (5000)

Servidor E precisamos acessar um recurso ou como


costumamos chamar, endpoint

http://localhost:5000/recurso
O comando com httpie
Cont
A especificação rato
Contrato
Lembra que falamos antes sobre contrato? Existe um formato padrão para
especificação que é o OpenAPI. [Esse tema vale uma live???]

Que é como dizemos o que deve ser enviado API e o que será respondido
quando um pedido for feito
pip install flask-pydantic-spec

OpenAPI
Como esses Represe
dados devem ser
representados? ntação
Representação
Existem vários formatos para a representação desses dados. O formato
mais comum atualmente é json.

Embora a representação do dado possa ser feita usando XML, e também


YAML
Representação

{
"field": "value",
"chave": "valor",
"nome": "Eduardo"
}
Representação
Voltando aos Verbos
O protocolo HTTP é a base usada por trás das APIs REST e as “chamadas”
são feitas partindo de “tipos” de requisições. Vamos conversar sobre as
mais populares, mas ao total são 9 verbos.

GET Pedir os recursos, dados. Ler o que está lá no servidor

POST Criar um recurso, inserir um dado / registro

PUT Alterar um registro (mandando todos os campos)

DELETE Deletar um recurso / registro / dado

https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.6
Voltando aos Verbos
O protocolo HTTP é a base usada por trás das APIs REST e as “chamadas”
são feitas partindo de “tipos” de requisições. Vamos conversar sobre as
mais populares, mas ao total são 9 verbos.

GET Seguro / Indepotente Pedir os recursos, dados. Ler o que está lá no servidor

POST Criar um recurso, inserir um dado / registro

PUT Indepotente Alterar um registro (mandando todos os campos)

DELETE Indepotente Deletar um recurso / registro / dado

https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.6
Respo
stas Entendendo as
respostas
CÓDIGOS
Para cada requisição no servidor, independentemente do verbo de
“chamada” retorna alguns códigos de resposta. Eles são divididos em 5
grupos. Vamos conversar só sobre os mais recorrentes
200 Códigos de sucesso

201 Criado

204 Sem conteúdo (usado para deletar com sucesso, por exemplo)

400 Códigos de erro

404 Não encontrado

500 Erro no servidor

https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.6
Filtros Melhorando
nossa busca
picpay.me/dunossauro apoia.se/livedepython PIX

Ajude o projeto

Você também pode gostar