April 5, 2020

Como usar Graphene con Flask

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.

  1. Instalación de dependencias.
pip3 install virtualenv
pipenv shell 
pip3 install Flask flask_graphql
  1. 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)
  1. 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

graphiql

  1. Repositorio en Github enlace