Ariadne은 GraphQL 서버를 구현하기 위한 Python 라이브러리입니다.
스키마 우선: Ariadne을 통해 Python 개발자는 API 구현에 스키마 우선 접근 방식을 사용할 수 있습니다. 이는 GraphQL 커뮤니티에서 사용하는 선도적인 접근 방식이며 수십 개의 프런트엔드 및 백엔드 개발자 도구, 예제 및 학습 리소스에서 지원됩니다. Ariadne은 이 모든 것을 귀하와 귀하의 팀의 다른 구성원이 즉시 사용할 수 있도록 해줍니다.
단순함: Ariadne은 개발자가 상용구가 아닌 비즈니스 문제에 집중할 수 있도록 작고 일관되며 기억하기 쉬운 API를 제공합니다.
개방성: Ariadne은 모듈식으로 설계되었으며 사용자 정의가 가능하도록 개방되어 있습니다. 뭔가 빠졌거나 마음에 들지 않으면 확장하거나 쉽게 교체하세요.
문서는 여기에서 확인할 수 있습니다.
간단하고, 빨리 배우고, 기억하기 쉬운 API입니다.
GraphQL.js 버전 15.5.1과의 호환성.
쿼리, 변형 및 입력 유형.
비동기식 확인자 및 쿼리 실행.
구독.
사용자 정의 스칼라, 열거형 및 스키마 지시문.
공용체와 인터페이스.
파일 업로드.
SDL 문자열을 사용하여 스키마 정의.
.graphql
, .gql
및 .graphqls
파일에서 스키마를 로드합니다.
기존 사이트에 GraphQL을 구현하기 위한 WSGI 미들웨어입니다.
API 모니터링을 위한 Apollo Tracing 및 OpenTracing 확장입니다.
camelCase
와 snake_case
사이의 자동 확인자 매핑과 camelCase
kwargs를 snake_case
로 변환하기 위한 @convert_kwargs_to_snake_case
함수 데코레이터를 옵트인합니다.
빠른 GraphQL 실험 및 GraphQL Playground를 위한 간단한 동기식 개발 서버가 내장되어 있습니다.
Visual Studio Code용 Apollo GraphQL 확장을 지원합니다.
gql()
도우미 함수를 통한 GraphQL 구문 검증. Apollo GraphQL 확장이 설치된 경우 색상화도 제공됩니다.
전역 상태 또는 개체 레지스트리가 없으며 명시적인 유형 재사용을 통해 동일한 코드베이스에서 여러 GraphQL API를 지원합니다.
Apollo Federation
을 지원합니다.
Ariadne은 pip를 사용하여 설치할 수 있습니다.
pip 설치 아리아드네
Ariadne에는 Python 3.7 이상이 필요합니다.
다음 예에서는 Person
유형을 정의하는 API와 두 사람의 목록을 반환하는 단일 쿼리 필드 people
생성합니다. 또한 http://127.0.0.1:8000
주소에서 사용할 수 있는 GraphQL Playground를 사용하여 로컬 개발 서버를 시작합니다.
API를 제공하는 데 사용할 ASGI 서버인 uvicorn을 설치하는 것부터 시작하세요.
핍 설치 uvicorn
그런 다음 예제 애플리케이션에 대한 example.py
파일을 만듭니다.
from ariadne import ObjectType, QueryType, gql, make_executable_schemafrom ariadne.asgi import GraphQL# 스키마 정의 언어를 사용하여 유형 정의(https://graphql.org/learn/schema/)# gql 함수의 래핑 문자열은 검증 및 더 나은 오류를 제공합니다. (""" type Query { people: [Person!]! } type Person { firstName: String lastName: String age: Int fullName: String }""")# QueryTypequery = QueryType()을 사용하여 리졸버 함수를 쿼리 필드에 매핑합니다. # 리졸버는 간단합니다. python [email protected]("people")defsolve_people(*_):return [ {"firstName": "John", "lastName": "Doe", "age": 21}, {"firstName": "Bob", "lastName": "Boberson", "age": 24}, ]# ObjectTypeperson = ObjectType("Person")@person.field("fullName")defsolve_person_fullname(person, *_):return "%s %s" % (person["firstName")을 사용하여 해석기 함수를 사용자 정의 유형 필드에 매핑합니다. ], person["lastName"])# 실행 가능한 GraphQL 스키마 스키마 생성 = make_executable_schema(type_defs, query, person)# 디버그에서 실행되는 스키마를 사용하여 ASGI 앱 생성 modeapp = GraphQL(스키마, 디버그=True)
마지막으로 서버를 실행합니다.
uvicorn 예제:앱
더 많은 가이드와 예제를 보려면 설명서를 참조하세요.
우리는 Ariadne에 대한 기여를 환영합니다! 버그나 문제를 발견한 경우 GitHub 문제를 자유롭게 사용하세요. 질문이나 피드백이 있으면 주저하지 말고 GitHub 토론을 통해 알려주세요.
안내 및 지침은 CONTRIBUTING.md를 참조하세요.
웹사이트와 문서에는 자체 GitHub 저장소가 있습니다: mirumee/ariadne-website
또한 최신 업데이트, 뉴스 및 무작위 사색을 보려면 Twitter에서 @AriadneGraphQL을 팔로우하세요!
미루미 소프트웨어 [email protected]의 ❤️으로 제작되었습니다.