-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
39 lines (34 loc) · 1.6 KB
/
Copy pathmain.py
File metadata and controls
39 lines (34 loc) · 1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from fastapi import FastAPI, Query
import requests
app = FastAPI()
@app.get('/')
def main():
return {'Route': '/api/hello'}, {'Route': '/api/restaurantes/'}, {'Route': '/api/restaurantes/?restaurante=query'}
@app.get('/api/hello') #! rota para ser acessada (url)
def hello():
'''
Endpoint que exibe uma mensagem incrivel do mundo da programacao!
'''
return {'hello world!'}
@app.get('/api/restaurantes/')
def get_restaurante(restaurante: str = Query(None)):
'''
Endpoint para ver os cardapios dos restaurantes
'''
url = 'https://guilhermeonrails.github.io/api-restaurantes/restaurantes.json' #! endpoint/dados
response = requests.get(url) #! pega os dados da url por meio do get
if response.status_code == 200: #! verifica se o code é 200(ok)
dados_json = response.json() #! cria uma variavel para armazenar os dados, response.json() -> retorna os valores da API como JSON
if restaurante is None:
return {'Dados': dados_json}
dados_restaurante = [] #! cria um dicionario vazio
for item in dados_json: #! itera sobre a resposta em JSON que recebemos da API
if item['Company'] == restaurante:
dados_restaurante.append({ #! adiciona o restante da informacao dos itens *** sempre passando como dicionario ***
'item': item['Item'],
'price': item['price'],
'description': item['description']
})
return {'Restaurante' : restaurante, 'Cardapio': dados_restaurante}
else:
return {'Erro': f'{response.status_code} - {response.text}'}