restful pagina oficial example flask flask-restful

pagina - Flask(con Flask-RESTful) sin analizar las cargas JSON



flask>-< restful (1)

Creo que debes hacer lo siguiente:

(1) Hacer que la location=''json'' explícita en add_argument :

self.parser.add_argument(''user'', type=str, location=''json'', required=True) self.parser.add_argument(''passw'', type=str, location=''json'', required=True)

(2) Asegúrese de que el campo de encabezado Content-Type de la solicitud http del cliente sea application/json

(3) La carga útil de la solicitud debería verse así:

{ "user": "abc", "passw": "123456" }

De forma rutinaria analizo las solicitudes de JSON con matraz de descanso sin ningún problema. Una pequeña diferencia es que no tengo mi analizador de solicitudes como un campo de instancia del recurso. No estoy seguro de si eso le está causando problemas, pero podría valer la pena intentarlo si todavía está atascado.

Estoy creando un frontend en Angular y el backend en Flask con la extensión RESTful. De forma predeterminada, Angular le gusta enviar los datos de vuelta como una carga (por ejemplo, esto es lo que parece en las herramientas de desarrollo de Chrome: ) También sé que puede formatear fácilmente esto en una carga útil JSON, que será preferible para algunos otros casos en otros puntos finales.

¿Cuál es la mejor manera de usar el analizador de argumentos en RESTful para tratar con esto? Si codifico cosas como datos de formularios, pueden leerse mediante reqparse, pero no solo una carga cruda como esta (aunque al leer su documentación y fuente, parece que debería poder manejar más que esto). Soy consciente de que al usar la ''ubicación'' arg en reqparse se verá en otra parte (por defecto se ve en form y json ). Sin embargo, todo lo que no se envía a través de campos de formulario no parece analizarse, a pesar de cualquier cosa que intente (incluso cuando se establece explícitamente la ubicación para incluir todos los atributos de la request , por ejemplo, json, args). El código de muestra aparece como:

class Login(restful.Resource): def __init__(self): self.parser = reqparse.RequestParser() self.parser.add_argument(''user'', type=str, required=True) self.parser.add_argument(''passw'', type=str, required=True) def post(self): args = self.parser.parse_args() # Some logic here return self.response

¿Hay algo que estoy haciendo mal para no poder leer args?