在使用石墨烯和Flask构建的GraphQL端点上发出JSON请求,您可以按照以下步骤进行操作:
from flask import Flask, request
from graphene import ObjectType, String, Schema
from graphene.relay import Node
from graphene_sqlalchemy import SQLAlchemyConnectionField, SQLAlchemyObjectType
from flask_graphql import GraphQLView
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'your_database_uri'
db = SQLAlchemy(app)
User
的数据模型,并且已经创建了相应的GraphQL类型UserType
。例如:class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
email = db.Column(db.String(120))
class UserType(SQLAlchemyObjectType):
class Meta:
model = User
interfaces = (Node,)
Query
,其中包含一个user
字段,用于获取用户信息。例如:class Query(ObjectType):
user = Node.Field(UserType)
schema = Schema(query=Query)
request.get_json()
方法获取JSON请求的数据,并将其传递给GraphQL执行器。例如:@app.route('/graphql', methods=['POST'])
def graphql():
data = request.get_json()
result = schema.execute(data['query'], variables=data.get('variables'))
return result.to_dict()
app.add_url_rule('/graphql', view_func=GraphQLView.as_view('graphql', schema=schema, graphiql=True))
/graphql
端点。确保请求的方法为POST,并在请求体中包含GraphQL查询。例如:{
"query": "{ user(id: 1) { id name email } }"
}
以上步骤是在使用石墨烯和Flask构建的GraphQL端点上发出JSON请求的基本过程。根据您的具体需求,您可以根据石墨烯和Flask的文档进一步定制和优化您的应用程序。
请注意,本回答中没有提及腾讯云相关产品和产品介绍链接地址,因为要求答案中不能提及亚马逊AWS、Azure、阿里云、华为云、天翼云、GoDaddy、Namecheap、Google等流行的一些云计算品牌商。
领取专属 10元无门槛券
手把手带您无忧上云