Ariadne เป็นไลบรารี Python สำหรับการนำเซิร์ฟเวอร์ GraphQL ไปใช้
Schema-first: Ariadne ช่วยให้นักพัฒนา Python สามารถใช้แนวทาง schema-first ในการใช้งาน API ได้ นี่เป็นแนวทางชั้นนำที่ใช้โดยชุมชน GraphQL และได้รับการสนับสนุนจากเครื่องมือ ตัวอย่าง และทรัพยากรการเรียนรู้สำหรับนักพัฒนาฟรอนต์เอนด์และแบ็กเอนด์มากมาย Ariadne ทำให้ทั้งหมดนี้พร้อมใช้งานสำหรับคุณและสมาชิกคนอื่นๆ ในทีมของคุณทันที
เรียบง่าย: Ariadne มี API ขนาดเล็ก สม่ำเสมอ และจดจำง่าย ซึ่งช่วยให้นักพัฒนามุ่งเน้นไปที่ปัญหาทางธุรกิจ ไม่ใช่แบบสำเร็จรูป
เปิด: Ariadne ได้รับการออกแบบให้เป็นโมดูลาร์และเปิดให้ปรับแต่งได้ หากคุณขาดหายไปหรือไม่พอใจกับบางสิ่งบางอย่าง ให้ขยายหรือสลับกับสิ่งที่คุณทำได้ง่ายๆ
เอกสารมีอยู่ที่นี่
API ที่เรียบง่าย เรียนรู้เร็ว และจดจำง่าย
ความเข้ากันได้กับ GraphQL.js เวอร์ชัน 15.5.1
ข้อความค้นหา การกลายพันธุ์ และประเภทอินพุต
รีโซลเวอร์แบบอะซิงโครนัสและการดำเนินการค้นหา
การสมัครรับข้อมูล
สเกลาร์ที่กำหนดเอง enums และคำสั่งสคีมา
สหภาพแรงงานและส่วนต่อประสาน
การอัพโหลดไฟล์
การกำหนดสคีมาโดยใช้สตริง SDL
กำลังโหลดสคีมาจากไฟล์ .graphql
, .gql
และ .graphqls
มิดเดิลแวร์ WSGI สำหรับการนำ GraphQL ไปใช้ในเว็บไซต์ที่มีอยู่
ส่วนขยาย Apollo Tracing และ OpenTracing สำหรับการตรวจสอบ API
เลือกใช้การแมปตัวแก้ไขอัตโนมัติระหว่าง camelCase
และ snake_case
และตัวตกแต่งฟังก์ชัน @convert_kwargs_to_snake_case
สำหรับการแปลง camelCase
kwargs เป็น snake_case
เซิร์ฟเวอร์ dev แบบซิงโครนัสที่เรียบง่ายในตัวสำหรับการทดลอง GraphQL อย่างรวดเร็วและ GraphQL Playground
รองรับส่วนขยาย Apollo GraphQL สำหรับ Visual Studio Code
การตรวจสอบไวยากรณ์ GraphQL ผ่านฟังก์ชันตัวช่วย gql()
ยังให้สีหากติดตั้งส่วนขยาย Apollo GraphQL
ไม่มีสถานะส่วนกลางหรือการลงทะเบียนวัตถุ รองรับ GraphQL API หลายรายการในโค้ดเบสเดียวกันพร้อมการใช้ซ้ำประเภทที่ชัดเจน
สนับสนุน Apollo Federation
Ariadne สามารถติดตั้งได้ด้วย pip:
pip ติดตั้ง ariadne
Ariadne ต้องใช้ Python 3.7 หรือสูงกว่า
ตัวอย่างต่อไปนี้สร้าง API ที่กำหนดประเภท Person
และฟิลด์คิวรีเดี่ยว people
ส่งคืนรายการของบุคคลสองคน นอกจากนี้ยังเริ่มต้นเซิร์ฟเวอร์ dev ท้องถิ่นด้วย GraphQL Playground ที่มีอยู่ในที่อยู่ http://127.0.0.1:8000
เริ่มต้นด้วยการติดตั้ง uvicorn ซึ่งเป็นเซิร์ฟเวอร์ ASGI ที่เราจะใช้เพื่อให้บริการ API:
pip ติดตั้ง uvicorn
จากนั้นสร้างไฟล์ example.py
สำหรับแอปพลิเคชันตัวอย่างของคุณ:
จาก ariadne นำเข้า ObjectType, QueryType, gql, make_executable_schema จาก ariadne.asgi นำเข้า GraphQL# กำหนดประเภทโดยใช้ Schema Definition Language (https://graphql.org/learn/schema/)# การตัดสตริงในฟังก์ชัน gql ให้การตรวจสอบและข้อผิดพลาดที่ดีขึ้น tracebacktype_defs = gql (""" พิมพ์แบบสอบถาม { คน: [บุคคล!]! } พิมพ์บุคคล { ชื่อ: นามสกุลสตริง: อายุของสตริง: Int fullName: String }""")# แมปฟังก์ชันตัวแก้ไขกับฟิลด์ Query โดยใช้ QueryTypequery = QueryType()# Resolvers คือ python แบบธรรมดา [email protected]("people")def solve_people(*_):return [ {"firstName": "จอห์น", "นามสกุล": "โด", "อายุ": 21}, {"firstName": "บ๊อบ", "นามสกุล": "โบเบอร์สัน", "อายุ": 24}, ]# แมปฟังก์ชันตัวแก้ไขกับฟิลด์ประเภทแบบกำหนดเองโดยใช้ ObjectTypeperson = ObjectType("Person")@person.field("fullName")def solve_person_fullname(person, *_):return "%s %s" % (person["firstName" ], คน["lastName"])# สร้าง GraphQL schemaschema ที่ปฏิบัติการได้ = make_executable_schema(type_defs, แบบสอบถาม, บุคคล)# สร้างแอป ASGI โดยใช้สคีมา ทำงานในโหมดดีบัก app = GraphQL (สคีมา, debug = True)
ในที่สุดก็รันเซิร์ฟเวอร์:
ตัวอย่าง uvicorn:app
สำหรับคำแนะนำและตัวอย่างเพิ่มเติม โปรดดูเอกสารประกอบ
เรายินดีต้อนรับการมีส่วนร่วมของ Ariadne! หากคุณพบข้อบกพร่องหรือปัญหา โปรดอย่าลังเลที่จะใช้ปัญหา GitHub หากคุณมีคำถามหรือข้อเสนอแนะ อย่าลังเลที่จะติดตามเราในการสนทนา GitHub
สำหรับคำแนะนำและคำแนะนำ โปรดดูที่ CONTRIBUTING.md
เว็บไซต์และเอกสารมีพื้นที่เก็บข้อมูล GitHub ของตัวเอง: mirumee/ariadne-website
นอกจากนี้ อย่าลืมติดตาม @AriadneGraphQL บน Twitter เพื่อรับข้อมูลอัปเดตล่าสุด ข่าวสาร และความคิดแบบสุ่ม!
สร้างขึ้นด้วย ❤️ โดย Mirumee Software [email protected]