flask graphql
v2.0.1
เพิ่มการรองรับ GraphQL ลงในแอปพลิเคชัน Flask ของคุณ
เพียงใช้มุมมอง GraphQLView จาก flask_graphql
from flask import Flask
from flask_graphql import GraphQLView
from schema import schema
app = Flask ( __name__ )
app . add_url_rule ( '/graphql' , view_func = GraphQLView . as_view (
'graphql' ,
schema = schema ,
graphiql = True ,
))
# Optional, for adding batch query support (used in Apollo-Client)
app . add_url_rule ( '/graphql/batch' , view_func = GraphQLView . as_view (
'graphql' ,
schema = schema ,
batch = True
))
if __name__ == '__main__' :
app . run () สิ่งนี้จะเพิ่ม /graphql endpoint ลงในแอพของคุณและเปิดใช้งาน graphiql ide
หากคุณใช้ประเภท Schema ของไลบรารีกราฟีนให้แน่ใจว่าใช้แอตทริบิวต์ graphql_schema เพื่อส่งผ่านเป็นสคีมาในมุมมอง GraphQLView มิฉะนั้น GraphQLSchema จาก graphql-core เป็นวิธีที่จะไป
ข้อมูลเพิ่มเติมที่บันทึกการเปิดตัว Graphene V3 และการใช้ GraphQl-Core 3
schema : วัตถุ GraphQLSchema ที่คุณต้องการให้มุมมองดำเนินการเมื่อได้รับคำขอที่ถูกต้องcontext : ค่าที่จะผ่านเป็น context_value ไปยังฟังก์ชัน graphql execute โดยค่าเริ่มต้นถูกตั้งค่าเป็น dict ด้วยวัตถุคำขอตาม request คีย์root_value : root_value ที่คุณต้องการให้กับ graphql executepretty : ไม่ว่าคุณจะต้องการคำตอบที่จะพิมพ์ JSON หรือไม่graphiql : ถ้า True อาจแสดง graphiql เมื่อโหลดโดยตรงจากเบราว์เซอร์ (เครื่องมือที่มีประโยชน์สำหรับการดีบักและการสำรวจ)graphiql_version : รุ่น graphiql ที่จะโหลด ค่าเริ่มต้นเป็น "1.0.3"graphiql_template : ฉีดสตริงเทมเพลต jinja เพื่อปรับแต่ง graphiqlgraphiql_html_title : ชื่อ graphiql เพื่อแสดง ค่าเริ่มต้นเป็น "graphiql"batch : ตั้งค่ามุมมอง graphql เป็นแบทชmiddleware : รายการของกึ่งกลาง graphqlencode : ตัวเข้ารหัสที่จะใช้สำหรับการตอบกลับ (ค่าเริ่มต้นอย่างสมเหตุสมผลถึง graphql_server.json_encode )format_error : Formatter ข้อผิดพลาดที่จะใช้สำหรับการตอบ graphql_server.default_format_errorsubscriptions : จุดสิ้นสุดของซ็อกเก็ต graphiql สำหรับการใช้การสมัครสมาชิกใน graphql-wsheaders : สตริง GraphQL ที่เป็นตัวเลือกที่จะใช้เป็นส่วนหัวคำขอเริ่มต้นที่แสดงหากไม่ได้ให้ส่วนหัวที่เก็บไว้จะถูกใช้default_query : สตริง GraphQL ที่เป็นตัวเลือกที่จะใช้เมื่อไม่มีการสืบค้นและไม่มีการสืบค้นที่เก็บไว้จากเซสชันก่อนหน้า หากไม่ได้ให้ graphiql จะใช้แบบสอบถามเริ่มต้นของตัวเองheader_editor_enabled : บูลีนเสริมซึ่งเปิดใช้งานตัวแก้ไขส่วนหัวเมื่อเป็นจริง ค่าเริ่มต้นเป็น เท็จshould_persist_headers : บูลีนเสริมซึ่งช่วยให้ส่วนหัวยังคงอยู่ในการจัดเก็บเมื่อเป็นจริง ค่าเริ่มต้นเป็น เท็จ นอกจากนี้คุณยังสามารถ subclass GraphQLView และเขียนทับ get_root_value(self, request) เพื่อให้มีค่ารูทแบบไดนามิกต่อคำขอ
class UserRootValue ( GraphQLView ):
def get_root_value ( self , request ):
return request . user ตั้งแต่ V3 รหัส flask-graphql อาศัยอยู่ที่ที่เก็บ graphql-server เพื่อให้การเปลี่ยนแปลงการแตกหักบนแพ็คเกจพื้นฐานในการซิงค์กับการรวมอื่น ๆ ทั้งหมด เพื่อให้มีส่วนร่วมโปรดดูที่การสนับสนุน