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
タイプと 2 人の人物のリストを返す単一のクエリ フィールドpeople
を定義する API を作成します。また、 http://127.0.0.1:8000
アドレスで利用可能な GraphQL Playground を使用してローカル開発サーバーを起動します。
まず、API を提供するために使用する ASGI サーバーである uvicorn をインストールします。
pip インストール 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 関数です@query.field("people")defsolve_people(*_):return [ {"名": "ジョン", "姓": "ドウ", "年齢": 21}, {"名": "ボブ", "姓": "ボバーソン", "年齢": 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 アプリの作成スキーマを使用し、デバッグモードで実行app = GraphQL(schema, debug=True)
最後にサーバーを実行します。
ユビコーンの例:アプリ
その他のガイドと例については、ドキュメントを参照してください。
アリアドネへの貢献を歓迎します。バグや問題を見つけた場合は、お気軽に GitHub の問題を使用してください。ご質問やフィードバックがございましたら、お気軽に GitHub ディスカッションでお問い合わせください。
ガイダンスと手順については、CONTRIBUTING.md を参照してください。
ウェブサイトとドキュメントには独自の GitHub リポジトリがあります: mirumee/ariadne-website
また、Twitter で @AriadneGraphQL をフォローして、最新の更新情報、ニュース、ランダムな考察を入手してください。
Mirumee Software による ❤️ で作成[email protected]