Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Duda en Enviar_test (Actividad Bonus) #372

Open
4 tasks done
PatricioSanz opened this issue Dec 14, 2021 · 19 comments
Open
4 tasks done

Duda en Enviar_test (Actividad Bonus) #372

PatricioSanz opened this issue Dec 14, 2021 · 19 comments

Comments

@PatricioSanz
Copy link

PatricioSanz commented Dec 14, 2021

Prerrequisitos

(Marcar colocando una X entre los corchetes los ítems que ya hiciste, así: "[X]")

Contenido

Hola, al querer probar las funciones con enviar_test y al querer imprimir la respuesta me sale <Response [500]>, incluso si intento leer con json o .text me salen los siguientes errores {'message': 'server_error', 'type': 'NoMethodError', 'detail': 'undefined method `permit!' for "function_response":String'} y {TypeError: 'str' object is not callable} respectivamente. Por lo que quiero saber de que clase error se trata y como solucionarlo?.

@marcosfernandezr
Copy link

Hola! Me sale lo mismo y no he logrado arreglar el error. Estoy ocupando el mismo link que describen en el enunciado.

@larryuc
Copy link

larryuc commented Dec 15, 2021

Esta funcion es necesaria completarla para obtener el puntaje o es solo para probarla?
ya que en el enunciado PDF aparece que se evaluará:

Requerimientos
(2.00 pts) Parte I: Obtener Habilidad
(2.00 pts) Parte II: Obtener Pokemones
(2.00 pts) Parte III: Generar estadísticas

¿Entonces puede quedar sin hacer esta funcion?

@ghost
Copy link

ghost commented Dec 15, 2021

Tengo el mismo error, he intentado con varias funciones de varias maneras y me retorna siempre error 500 el servidor. Puede que no cuente para el puntaje de la actividad pero me gustaría poder verificar si las funciones que voy haciendo están correctas.

@rdelallera
Copy link

rdelallera commented Dec 15, 2021

Me pasa lo mismo desde ayer con el error 500 con el servidor y no logro poder verificar si las funciones me están entregando el formato correspondiente. Le adjunto lo que me sale siempre. Gracias!!

Screen Shot 2021-12-14 at 8 57 23 PM

@Francisco-Aguilera-xd
Copy link

Me sumo a la duda

@igbasly
Copy link
Member

igbasly commented Dec 15, 2021

Hola hola a todes! ✨

Primero que todo, quiero explicarles que en webservices un código de respuesta a una consulta solo indica el estado de esta, pero no necesariamente significan lo mismo para cada caso. Me explico, un error 500, significa que se produjo un error en el servidor, pero ese error no necesariamente fue el mismo para cada uno.

Por ello, voy a ir de a uno:

  • @PatricioSanz tu error se debe a que probablemente no definiste bien el diccionario con la información a enviar. Por ejemplo, pudiste haber envido algo del tipo
{ "test": "function_name" }
  • @vahoffman y @rdelallera: sin un mayor contexto, la verdad no puedo decirles porque fue su error.

Al resto, en cuanto a si se evaluará o no la sección de Tests con API, fue error nuestro de enunciado y en breve lo actualizaremos y enviaremos un anuncio explicando, pero si contará cómo parte del puntaje.

Saludos, cualquier cosa, no duden en escribir 👌

@igbasly igbasly self-assigned this Dec 15, 2021
@marcosfernandezr
Copy link

Hola @igbasly, sigo sin entender cuál es el error, porque estoy siguiendo literal el formato que dicen en el enunciado.
Me sale este error:
{'message': 'server_error', 'type': 'NoMethodError', 'detail': 'undefined method `permit!' for "function_response":String'}

@aurmeneta
Copy link

Tengo el mismo problema, pero es solo al hacerlo desde python. Si hago el request ocupando Postman, funciona sin problemas.

@igbasly
Copy link
Member

igbasly commented Dec 15, 2021

@marcosfernandezr @aurmeneta podrían subir sus códigos a sus repositorios y así puedo intentar verlo con más detalle 😉

@larryuc
Copy link

larryuc commented Dec 15, 2021

Me pasa lo mismo y mis códigos están arriba :)

@rdelallera
Copy link

Sigo con el mismo error de 500 mencionado más arriba cuando mando lo pedido para enviar_test con el formato solicitado. Mis códigos están arriba también! Gracias @igbasly :)

@marcosfernandezr
Copy link

@igbasly mi código está arriba! Gracias de antemano. Ahora, me sale un error de que el formato no es el del enunciado, pero estoy copiando literalmente el mismo :(

@igbasly
Copy link
Member

igbasly commented Dec 15, 2021

@larryuc @rdelallera @rdelallera @marcosfernandezr @aurmeneta @vahoffman @PatricioSanz
Yaa! Después de harto investigar y probar, me encontré con que es un "error" de Python, específicamente de la librería requests. Como la información que les pedimos que envíen es un diccionario que contiene otro diccionario dentro, al hacer:

requests.post(url, data=info)

Esto está diciendo que se está enviando información de texto plano al servidor, pero en este caso el servidor espera un diccionario con otro dentro. Para ello, en las consultas uno puede indicar que tipo de información se está enviando mediante los llamados headers, pero por suerte requests también nos lo pone fácil.

Solución

En vez de utilizar data deben utilizar json 🙌 . Bastante simple (eh) jeje.

requests.post(url, json=info)

Y con eso debería funcionar sin problemas 👌

Quedo atento por si suceden otras cosas, por favor pruébenlo y me avisan 😉

@igbasly igbasly pinned this issue Dec 15, 2021
@J0SEF4
Copy link

J0SEF4 commented Dec 15, 2021

Hola respecto, al enviar_test su ejecución se pone en el main.py cierto?

@IIC2233 IIC2233 deleted a comment from Bvv12 Dec 15, 2021
@igbasly
Copy link
Member

igbasly commented Dec 15, 2021

@J0SEF4 Si quieres puedes probar llamándolo en el main o en el mismo archivo api_curso.py en un if __name__ == "__main__" 😉

@RorroReyes
Copy link

hola! respecto a esta parte, cuando la respuesta es "{'result': 'error', 'message': 'El nombre de la función no coincide con el id entregado'}". No entiendo con que id esta comparando el nombre de la función, ya que el único id que manejo yo es el del argumento de la función, y nunca se lo paso al requests

@igbasly
Copy link
Member

igbasly commented Dec 16, 2021

Hola @RorroReyes ✌️
Si, se refiere a que si haces un requests a https://www.avanzada.ml/api/v2/bonus/tests/2, el nombre de función enviado en el cuerpo del POST debe ser el correspondiente al test de id = 2. Eso puedes verlo según la tabla que se encuentra en el enunciado.

Se entiende??

@larryuc
Copy link

larryuc commented Dec 16, 2021

@larryuc @rdelallera @rdelallera @marcosfernandezr @aurmeneta @vahoffman @PatricioSanz Yaa! Después de harto investigar y probar, me encontré con que es un "error" de Python, específicamente de la librería requests. Como la información que les pedimos que envíen es un diccionario que contiene otro diccionario dentro, al hacer:

requests.post(url, data=info)

Esto está diciendo que se está enviando información de texto plano al servidor, pero en este caso el servidor espera un diccionario con otro dentro. Para ello, en las consultas uno puede indicar que tipo de información se está enviando mediante los llamados headers, pero por suerte requests también nos lo pone fácil.

Solución

En vez de utilizar data deben utilizar json 🙌 . Bastante simple (eh) jeje.

requests.post(url, json=info)

Y con eso debería funcionar sin problemas 👌

Quedo atento por si suceden otras cosas, por favor pruébenlo y me avisan 😉

Ahora funciona todo super bien!!
Muchas gracias!!! 🙌🙌🙌

@floviollier
Copy link

@igbasly
Hola!! resulta que al probar mi función enviar_test con las diferentes funciones la respuesta que me arroja es <Response [200]>, que entiendo que es que se creo exitosamente el post. Sin embargo, no logro que me entregue las respuestas del enunciado para poder realmente corroborar que este bien.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

10 participants