[MIDDLEWARE] middleware executed many times
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 25/100
Línea de trabajo
Comienza con la configuración de GraphQLView.as_view y DummyMiddleware.resolve mostrada en el issue, y luego reproduce el comportamiento con la consulta hello, una consulta de lista y la mutación logout. Compara los recuentos de invocaciones del middleware y determina el comportamiento esperado de una sola ejecución antes de identificar qué componente es responsable.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Hi there, I'm using flask-graphql in a project and got into a question/issue I don't have many clues. I'm using middlewares; this is the minimum example:
from flask import Flask, request
from flask_graphql import GraphQLView
from graphene import Field, ObjectType, Schema, String, relay
class Hello(ObjectType):
message = String()
class Query(ObjectType):
hello = Field(Hello)
def resolve_hello(self, info):
return Hello(message="Hi there")
class DummyMiddleware(object):
def resolve(self, next, root, info, **kwargs):
print("DummyMiddleware")
return next(root, info, **kwargs)
dummy_middleware = DummyMiddleware()
schema = Schema(query=Query)
app = Flask(__name__)
app.add_url_rule('/graphql', view_func=GraphQLView.as_view('graphql',
schema=schema,
graphiql=True,
middleware=[dummy_middleware]))
if __name__ == "__main__":
app.run(host='0.0.0.0', threaded=True)
(The problem happens no matter the version; the problem also happens when launching the wsgi app with gunicorn).
If I query "hello()", the "DummyMiddleware" will appear twice. If I query a list of elements, the middleware is executed lots of time, twice per element it seems.
For a query this is just a problem of performance, but in a Logout() mutation what happens is:
- 1st time - the authenticated request is valid, so "logout()" deletes the token
- 2nd time - the authenticated request is not valid (because the token has been deleted), so it returns an error
Is there anything wrong in my approach to middlewares? I'm not sure which part is responsible (flask, graphql, my configuration...). Any hint would be appreciated.
- Lenguaje dominante
- Python
- Estrellas
- 1.3k
- Forks
- 139
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de graphql-python/flask-graphql
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
graphql-python/flask-graphql#92 · 2 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
-
which graphiql version is using? Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 35/100
graphql-python/flask-graphql#85 · 2 comentarios · 1 reacción ·
-
CSRF Exemption? Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 25/100
graphql-python/flask-graphql#84 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
graphql-python/flask-graphql#80 · 9 comentarios · 2 reacciones ·
Todos los issues de graphql-python/flask-graphql
Issues similares
-
essnmx good first issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
-
[Feature] 奇物选择添加优先级 Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
syfoud/Simulated_Scepter#174 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Giskard-AI/giskard-oss#2840 · 1 comentario ·
-
A claim comment carrying the issue number is silently declined while the workflow reports success Abiertoarea: repo bug perceived difficulty: 2
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
yeti-platform/yeti#1380 ·