marshmallow-code / marshmallow-code/webargs

RFC: Use annotations for parsing arguments

Abierto
#353 6 comentarios 6 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

feedback welcome
Lenguaje dominante
Python
Estrellas
1.4k
Forks
167
Merge medio
17 h 8 min
PR fusionados (30 d)
4

Descripción

Add a decorator that will parse request arguments from the view function's type annotations.

I've built a working proof of concept of this idea in webargs-starlette.

@app.route("/")
@use_annotations(locations=("query",))
async def index(request, name: str = "World"):
    return JSONResponse({"Hello": name})

A marshmallow Schema is generated from the annotations using Schema.TYPE_MAPPING to construct fields.

The code for use_annotations mostly isn't tied to Starlette and could be adapted for AsyncParser (and core.Parser when we drop Python 2 support).

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Empieza revisando la prueba de concepto en webargs-starlette; después, inspecciona AsyncParser y core.Parser, y cómo marshmallow Schema.TYPE_MAPPING construye los campos. Se considera terminado cuando se haya adaptado el enfoque basado en anotaciones use_annotations para los parsers relevantes, de modo que los argumentos de la solicitud se analicen a partir de las anotaciones de las funciones de vista.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
api, backend
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
28/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.