使用ASP.NETコアサポートGraphQL(安らかな支援)

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。 

おすすめ

転載: www.cnblogs.com/lhxsoft/p/11899858.html