forked from mouredev/Hello-Python
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathusers.py
55 lines (37 loc) · 1.37 KB
/
users.py
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# Clase en vídeo (01/12/2022): https://www.twitch.tv/videos/1667582141
### Users API ###
from fastapi import FastAPI
from pydantic import BaseModel
# Inicia el server: uvicorn users:app --reload
app = FastAPI()
class User(BaseModel):
id: int
name: str
surname: str
url: str
age: int
users_list = [User(id=1, name="Brais", surname="Moure", url="https://moure.dev", age=35),
User(id=2, name="Moure", surname="Dev",
url="https://mouredev.com", age=35),
User(id=3, name="Brais", surname="Dahlberg", url="https://haakon.com", age=33)]
@app.get("/usersjson")
async def usersjson(): # Creamos un JSON a mano
return [{"name": "Brais", "surname": "Moure", "url": "https://moure.dev", "age": 35},
{"name": "Moure", "surname": "Dev",
"url": "https://mouredev.com", "age": 35},
{"name": "Haakon", "surname": "Dahlberg", "url": "https://haakon.com", "age": 33}]
@app.get("/users")
async def users():
return users_list
@app.get("/user/{id}") # Path
async def user(id: int):
return search_user(id)
@app.get("/user/") # Query
async def user(id: int):
return search_user(id)
def search_user(id: int):
users = filter(lambda user: user.id == id, users_list)
try:
return list(users)[0]
except:
return {"error": "No se ha encontrado el usuario"}