https://github.com/graphql-dotnet
GraphQLプロフィール
ここGraphQLの定義は次のとおりです。
GraphQLは、クエリ言語のためのAPIの両方があなたのデータクエリ時間を満たす実行されます。あなたのAPIでGraphQLデータは、クライアントが正確にそれが必要なデータを取得できるようにすることを、分かりやすいのセットの完全な説明を提供し、冗長性はありませんが、また時間を超える進化するAPIを容易にするだけでなく、強力な開発ツールを構築するために使用することができます。
GraphQLは2015年、公共の場で、2012年に始まったのFacebook、によって開発されました。
GraphQLは、クライアントがAPIの進化を使用することは簡単ですので、それは、余分なものを追加することなく、クライアント彼らが望む正確なクエリを可能にすることを除いて回帰し。
例
ここでは、この単純な例ではGraphQLクエリです。
{
person {
name
email
} }
そして、これはクエリの結果に応じて、次のとおりです。
{
"data": { "person": { "name": "Dave", "email": "[email protected]" } } }
あなたは、クエリと結果に応じて、構造体の内容はほとんど同じです見ることができます。あなたは、このような両親などの追加情報の人が、必要な場合は、その後、あなたのクエリにこのプロパティを追加します。
{
person {
name
email
parents { name } } }
これは、このような応答です。
{
"data": { "person": { "name": "Dave", "email": "[email protected]", "parents": [ { "name": "Nick" }, { "name": "AJ" }, { "name": "Brian" } ] } } }
サポートGraphQLでASP.NETコアで
GraphQLクエリは、通常、特定のGraphQLのエンドポイントに送信されます。最後に、それは要求を処理し、GraphQLは、オブジェクトクエリの結果を返します。
プロジェクトの確立
ここでは、ASP.NETコアでこの機能を実装して、最初に確立プロジェクト:
CLIコマンドラインを使用してDOTNET、タイプ:
dotnet new web --name graph
これは、ASP.NETコア空のプロジェクトを作成します。プロジェクト構造図:
モデルを確立
そして、人のモデルを確立します。
リポジトリの確立
次の確立のためのリポジトリは、まず、人を照会インターフェースです。
その後、いくつかのデータを持っている具体的なリポジトリは、死を書かれました:
GraphQLライブラリを追加
DOTNET CLIによってGraphQLこのライブラリを追加します。
dotnet add package GraphQL
インストールが正常に完了した後に、プロジェクトファイルが表示されます。
GraphQLを確立するミドルウェア
:まず、私はあなたがフィールドを含めることGraphQL特定のタイプのPersonクラスPersonクラスにマップする必要がある
ObjectGraphType <人>で継承するこのクラスのニーズを。
それから私は、クエリのクラスを必要とする、それが実装GraphQLの詳細が含まれています。
このクラスは、ObjectGraphTypeに継承する必要があります。ここで、私はPersonRepositoryのコールへのクエリ要求のすべてのフィールドをマップする必要があります。
最後に、ミドルウェア:
リクエストアドレスが始まり、「/ graphql」で、クラス手段は、体がリード要求をしようとします。別のインスタンスPersonQueryがパラメータとしてPersonRepositoryを必要としながら、スキーマオブジェクトのインスタンスを作成することは、そのクエリフィールドのPersonQuery値です。
最後に、このスキーマを照会するDocumentExecuterを確立し、その結果はJSON形式で返されます。
登録リポジトリ、ミドルウェアの使用
でStartup.csでリポジトリを登録して、パイプラインにおける当社のミドルウェアを呼び出すことを忘れないでください:
テスト
ASP.NETコアプロジェクトを実行します。
dotnet watch run
オープンPOSTMAN、最初のクエリIDによってパーソン:
クール、問題ありません。
両親は、クエリが付属しています:
最後に、それは人のすべてを照会します。
クエリはむしろ人よりも人で書かれていることに注意してください、これは一貫性の内側とPersonQueryのクラス定義でなければなりません。
エピローグ
これは単に、元は手動でそれを実装ASP.NETコアサポートGraphQLを使用しています。DOTNET固有のルックgraphql:https://github.com/graphql-dotnet/graphql-dotnet。