Como usar Graphene con Flask
En este ejemplo practico te enseñare a usar Graphene que es una biblioteca para construir una API GraphQL en Python fácilmente. Para esto utilizaremos el microframework web Flask.
- Instalación de dependencias.
pip3 install virtualenv
pipenv shell
pip3 install Flask flask_graphql
- Creamos el servidor con Flask.
En este ejemplo sencillo solo crearemos un servidor muy basico el cual estara corriendo en el puerto 3000
from flask import Flask
app = Flask(__name__)
if __name__ == '__main__':
app.run(debug=True, port=3000)
3.Agregamos Flask-GraphQL
Ahora importaremos flask_graphql el cual nos ayudara a agregar soporte de GraphQL a su aplicación Flask. Ademas crearemos un ruta llamada /graphql que nos permitira comunicarnos con GraphQL.
from flask import Flask
from flask_graphql import GraphQLView
app = Flask(__name__)
#ruta de configuracion de flask_graphql
app.add_url_rule('/graphql', view_func=GraphQLView.as_view('graphql', schema=schema, graphiql=True))
if __name__ == '__main__':
app.run(debug=True, port=3000)
- Agregamos Graphene
Ahora crearemos un clase Query en la cual especificamos todas las queries que podemos hacer en GraphQL. Para este ejemplo crearemos una querie saludo y devolvera un tipo de dato String
from flask import Flask
from flask_graphql import GraphQLView
import graphene
app = Flask(__name__)
#graphql con graphene
class Query(graphene.ObjectType):
saludo = graphene.String()
def resolve_saludo(self, info):
return "Hola como estas?"
schema = graphene.Schema(query=Query)
schema.execute('''
query {
saludo
}
''')
#ruta de configuracion de flask_graphql
app.add_url_rule('/graphql', view_func=GraphQLView.as_view('graphql', schema=schema, graphiql=True))
if __name__ == '__main__':
app.run(debug=True, port=3000)
De ultimo deberiamos tener Graphiql en la ruta localhost:3000/graphql

- Repositorio en Github enlace