Skip to content

Commit 86aa91c

Browse files
committed
Mensaje descriptivo para API-practica
1 parent 8b6eb7b commit 86aa91c

File tree

14 files changed

+277
-18
lines changed

14 files changed

+277
-18
lines changed

exercises/01-what-is-a-request/app.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import requests
22

3-
url = "https://assets.breatheco.de/apis/fake/sample/404-example.php"
3+
url = "https://assets.breatheco.de/apis/fake/sample/hello.php"
44
response = requests.get(url)
55

66
print("The response status is: "+str(response.status_code))

exercises/02-random-status/app.py

+13
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
11
import requests
22

33
response = requests.get("https://assets.breatheco.de/apis/fake/sample/random-status.php")
4+
5+
if response.status_code == 404:
6+
print("The URL you asked is not found")
7+
elif response.status_code == 503:
8+
print("Unavailable right now")
9+
elif response.status_code == 200:
10+
print("Everything went perfect")
11+
elif response.status_code == 400:
12+
print("Something is wrong on the request params")
13+
else:
14+
print(f"Unexpected status code: {response.status_code}")
15+
16+
print(response.status_code)

exercises/03-response-body/app.py

+10-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
11
import requests
22

3-
url = "https://assets.breatheco.de/apis/fake/sample/random-status.php"
3+
url = "https://assets.breatheco.de/apis/fake/sample/random-status.php"
4+
5+
response = requests.get(url) #Realizo solicitud GET
6+
7+
if response.status_code == 200: #Verifico el codigo de estado
8+
print(response.text)
9+
10+
else:
11+
print("Something went wrong")
12+
+21-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,24 @@
11
import requests
22

33
response = requests.get("https://assets.breatheco.de/apis/fake/sample/time.php")
4-
print(response.text)
4+
print(response.text)
5+
6+
url = "https://assets.breatheco.de/apis/fake/sample/time.php"
7+
8+
# Realiza la solicitud GET
9+
response = requests.get(url)
10+
11+
# Verifica si la solicitud fue exitosa (código de estado 200)
12+
if response.status_code == 200:
13+
# Obtiene el cuerpo de la respuesta como un diccionario
14+
time_data = response.json()
15+
16+
# Obtiene las propiedades horas, minutos y segundos del diccionario
17+
hours = time_data["hours"]
18+
minutes = time_data["minutes"]
19+
seconds = time_data["seconds"]
20+
21+
# Imprime la hora formateada
22+
print(f"Current time: {hours} hrs {minutes} min and {seconds} sec")
23+
else:
24+
print("Something went wrong")

exercises/05-project-name/app.py

+17-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,19 @@
11
import requests
22

3-
# your code here
3+
url = "https://assets.breatheco.de/apis/fake/sample/project1.php"
4+
5+
# Realiza la solicitud GET
6+
response = requests.get(url)
7+
8+
# Verifica si la solicitud fue exitosa (código de estado 200)
9+
if response.status_code == 200:
10+
# Obtiene el cuerpo de la respuesta como un diccionario
11+
project_data = response.json()
12+
13+
# Obtiene el nombre del proyecto del diccionario de respuestas
14+
project_name = project_data["name"]
15+
16+
# Imprime el nombre del proyecto
17+
print(project_name)
18+
else:
19+
print("Something went wrong")

exercises/06-project-list/app.py

+21-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,23 @@
11
import requests
22

3-
# your code here
3+
url = "https://assets.breatheco.de/apis/fake/sample/project_list.php"
4+
5+
# Realiza la solicitud GET
6+
response = requests.get(url)
7+
8+
# Verifica si la solicitud fue exitosa (código de estado 200)
9+
if response.status_code == 200:
10+
# Obtiene el cuerpo de la respuesta como una lista de proyectos
11+
project_list = response.json()
12+
13+
# Verifica si hay al menos dos proyectos en la lista
14+
if len(project_list) >= 2:
15+
# Obtiene el nombre del segundo proyecto en la lista
16+
second_project_name = project_list[1]["name"]
17+
18+
# Imprime el nombre del segundo proyecto
19+
print(second_project_name)
20+
else:
21+
print("No hay suficientes proyectos en la lista")
22+
else:
23+
print("Something went wrong")
+28-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,30 @@
11
import requests
22

3-
# your code here
3+
url = "https://assets.breatheco.de/apis/fake/sample/project_list.php"
4+
5+
# Realiza la solicitud GET
6+
response = requests.get(url)
7+
8+
# Verifica si la solicitud fue exitosa (código de estado 200)
9+
if response.status_code == 200:
10+
# Obtiene el cuerpo de la respuesta como una lista de proyectos
11+
project_list = response.json()
12+
13+
# Verifica si hay al menos un proyecto en la lista
14+
if len(project_list) > 0:
15+
# Obtiene el último proyecto en la lista
16+
last_project = project_list[-1]
17+
18+
# Verifica si hay al menos una imagen en el proyecto
19+
if "images" in last_project and len(last_project["images"]) > 0:
20+
# Obtiene la última imagen del proyecto
21+
last_image_url = last_project["images"][-1]
22+
23+
# Imprime la URL de la última imagen en la consola
24+
print(last_image_url)
25+
else:
26+
print("No hay imágenes en el último proyecto")
27+
else:
28+
print("No hay proyectos en la lista")
29+
else:
30+
print("Something went wrong")

exercises/08-blog-post-author/app.py

+21-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,23 @@
11
import requests
22

3-
# your code here
3+
url = "https://assets.breatheco.de/apis/fake/sample/weird_portfolio.php"
4+
5+
# Realiza la solicitud GET
6+
response = requests.get(url)
7+
8+
# Verifica si la solicitud fue exitosa (código de estado 200)
9+
if response.status_code == 200:
10+
# Obtiene el cuerpo de la respuesta como un diccionario
11+
portfolio_data = response.json()
12+
13+
# Verifica si hay al menos una publicación en el portafolio
14+
if "posts" in portfolio_data and len(portfolio_data["posts"]) > 0:
15+
# Obtiene el autor de la primera publicación
16+
first_post_author = portfolio_data["posts"][0]["author"]
17+
18+
# Imprime el nombre del autor
19+
print(first_post_author)
20+
else:
21+
print("No hay publicaciones en el portafolio")
22+
else:
23+
print("Something went wrong")
+31-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,36 @@
11
import requests
22

33
def get_titles():
4-
# your code here
5-
return None
4+
url = "https://assets.breatheco.de/apis/fake/sample/weird_portfolio.php"
65

6+
# Realiza la solicitud GET
7+
response = requests.get(url)
78

8-
print(get_titles())
9+
# Verifica si la solicitud fue exitosa (código de estado 200)
10+
if response.status_code == 200:
11+
# Obtiene el cuerpo de la respuesta como un diccionario
12+
portfolio_data = response.json()
13+
14+
# Verifica si hay al menos una publicación en el portafolio
15+
if "posts" in portfolio_data and len(portfolio_data["posts"]) > 0:
16+
# Inicializa un arreglo vacío para almacenar los títulos
17+
titles = []
18+
19+
# Itera sobre cada publicación y agrega el título al arreglo
20+
for post in portfolio_data["posts"]:
21+
titles.append(post["title"])
22+
23+
# Retorna el arreglo de títulos
24+
return titles
25+
else:
26+
print("No hay publicaciones en el portafolio")
27+
return []
28+
else:
29+
print("Something went wrong")
30+
return []
31+
32+
# Ejecuta la función y guarda los títulos en una variable
33+
post_titles = get_titles()
34+
35+
# Imprime los títulos obtenidos
36+
print(post_titles)

exercises/10-get_post_tags/app.py

+29-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,35 @@
11
import requests
22

33
def get_post_tags(post_id):
4-
# your code here
4+
url = "https://assets.breatheco.de/apis/fake/sample/weird_portfolio.php"
5+
6+
# Realiza la solicitud GET
7+
response = requests.get(url)
8+
9+
# Verifica si la solicitud fue exitosa (código de estado 200)
10+
if response.status_code == 200:
11+
# Obtiene el cuerpo de la respuesta como un diccionario
12+
portfolio_data = response.json()
13+
14+
# Verifica si hay al menos una publicación en el portafolio
15+
if "posts" in portfolio_data and len(portfolio_data["posts"]) > 0:
16+
# Itera sobre cada publicación para encontrar el post_id deseado
17+
for post in portfolio_data["posts"]:
18+
# Compara el post_id de la publicación actual con el post_id dado
19+
if post["id"] == post_id:
20+
# Retorna las etiquetas (tags) de la publicación encontrada
21+
return post["tags"]
22+
23+
# Si no se encuentra la publicación con el post_id dado, imprime un mensaje
24+
print(f"No se encontró ninguna publicación con el post_id {post_id}")
25+
return []
26+
else:
27+
print("No hay publicaciones en el portafolio")
28+
return []
29+
else:
30+
print("Something went wrong")
31+
return []
32+
533
return None
634

735

+38-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,42 @@
11
import requests
22

33
def get_attachment_by_id(attachment_id):
4-
# your code here
5-
return None
4+
url = "https://assets.breatheco.de/apis/fake/sample/weird_portfolio.php"
65

7-
print(get_attachment_by_id(137))
6+
# Realiza la solicitud GET
7+
response = requests.get(url)
8+
9+
# Verifica si la solicitud fue exitosa (código de estado 200)
10+
if response.status_code == 200:
11+
# Obtiene el cuerpo de la respuesta como un diccionario
12+
portfolio_data = response.json()
13+
14+
# Verifica si hay al menos una publicación en el portafolio
15+
if "posts" in portfolio_data and len(portfolio_data["posts"]) > 0:
16+
# Itera sobre cada publicación
17+
for post in portfolio_data["posts"]:
18+
# Verifica si hay adjuntos en la publicación actual
19+
if "attachments" in post:
20+
# Itera sobre cada adjunto en la publicación
21+
for attachment in post["attachments"]:
22+
# Compara el attachment_id del adjunto actual con el attachment_id dado
23+
if attachment.get("attach_id") == attachment_id:
24+
# Retorna el título del adjunto encontrado
25+
return attachment.get("title")
26+
27+
# Si no se encuentra ningún adjunto con el attachment_id dado, imprime un mensaje
28+
print(f"No se encontró ningún adjunto con el attachment_id {attachment_id}")
29+
return None
30+
else:
31+
print("No hay publicaciones en el portafolio")
32+
return None
33+
else:
34+
print("Something went wrong")
35+
return None
36+
37+
# Ejemplo de uso de la función
38+
attachment_id_to_find = 137
39+
attachment_title = get_attachment_by_id(attachment_id_to_find)
40+
41+
# Imprime el título del adjunto obtenido
42+
print(attachment_title)

exercises/12-post-request/README.es.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Envía una solitud POST al siguiente URL:
1616

1717
POST: https://assets.breatheco.de/apis/fake/sample/post.php
1818

19-
E imprime la respuesta (text response) en la consolae
19+
E imprime la respuesta (text response) en la consola
2020

2121
## 💡Pista
2222

exercises/12-post-request/app.py

+24-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,26 @@
11
import requests
2+
import json
23

3-
# your code here
4+
url = "https://assets.breatheco.de/apis/fake/sample/post.php"
5+
headers = {"Content-Type": "application/json"}
6+
7+
# Crear el cuerpo de la solicitud (payload) como un diccionario
8+
payload = {
9+
"name": "John Doe",
10+
"email": "john.doe@example.com",
11+
"phone": "123456789",
12+
"address": "123 Main St"
13+
}
14+
15+
# Convertir el diccionario a una cadena JSON
16+
json_payload = json.dumps(payload)
17+
18+
# Enviar la solicitud POST
19+
response = requests.post(url, headers=headers, data=json_payload)
20+
21+
# Verificar si la solicitud fue exitosa (código de estado 200)
22+
if response.status_code == 200:
23+
# Imprimir la respuesta en la consola
24+
print(response.text)
25+
else:
26+
print("Something went wrong")

exercises/13-post-request-body/app.py

+22-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,24 @@
11
import requests
2+
import json
23

3-
resp = requests.post("https://assets.breatheco.de/apis/fake/sample/save-project-json.php")
4-
print(resp.text)
4+
url = "https://assets.breatheco.de/apis/fake/sample/save-project-json.php"
5+
headers = {"Content-Type": "application/json"}
6+
7+
# Cuerpo de la solicitud en formato JSON
8+
request_body = {
9+
"id": 2323,
10+
"title": "Very big project"
11+
}
12+
13+
# Convertir el cuerpo de la solicitud a una cadena JSON
14+
json_body = json.dumps(request_body)
15+
16+
# Enviar la solicitud POST
17+
response = requests.post(url, headers=headers, data=json_body)
18+
19+
# Verificar si la solicitud fue exitosa (código de estado 200)
20+
if response.status_code == 200:
21+
# Imprimir la respuesta en la consola
22+
print(response.text)
23+
else:
24+
print("Something went wrong")

0 commit comments

Comments
 (0)