GraphQL.IntrospectionModel 0.0.22

dotnet add package GraphQL.IntrospectionModel --version 0.0.22                
NuGet\Install-Package GraphQL.IntrospectionModel -Version 0.0.22                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用了 NuGet 模块的 Install-Package 版本。
<PackageReference Include="GraphQL.IntrospectionModel" Version="0.0.22" />                
对于支持 PackageReference 的项目,请将此 XML 节点复制到项目文件以引用该包。
paket add GraphQL.IntrospectionModel --version 0.0.22                
#r "nuget: GraphQL.IntrospectionModel, 0.0.22"                
#r 指令可用于 F# Interactive 和 Polyglot Notebooks。请将此内容复制到交互式工具或脚本的源代码中,以引用该包。
// Install GraphQL.IntrospectionModel as a Cake Addin
#addin nuget:?package=GraphQL.IntrospectionModel&version=0.0.22

// Install GraphQL.IntrospectionModel as a Cake Tool
#tool nuget:?package=GraphQL.IntrospectionModel&version=0.0.22                

graphql-introspection-model

<a href="https://www.buymeacoffee.com/sungam3r" target="_blank"><img src="https://bmc-cdn.nyc3.digitaloceanspaces.com/BMC-button-images/custom_images/orange_img.png" alt="Buy Me A Coffee" style="height: auto !important;width: auto !important;" ></a>

License

codecov Nuget NuGet

GitHub Release Date GitHub commits since latest release (by date) Size

GitHub contributors Activity Activity Activity

Run unit tests Publish preview to GitHub registry Publish release to Nuget registry CodeQL analysis

GraphQL introspection 模型类型。由 graphql-sdl-exporter 使用。

GraphQL 服务器支持对模式进行 introspection。这个模式使用 GraphQL 本身进行查询,创建了一个强大的工具构建平台。

这是一个“经典”的 introspection 查询示例:

query IntrospectionQuery {
  __schema {
    queryType { name }
    mutationType { name }
    subscriptionType { name }
    types {
      ...FullType
    }
    directives {
      name
      description
      locations
      args {
        ...InputValue
      }
    }
  }
}

fragment FullType on __Type {
  kind
  name
  description
  fields(includeDeprecated: true) {
    name
    description
    args {
      ...InputValue
    }
    type {
      ...TypeRef
    }
    isDeprecated
    deprecationReason
  }
  inputFields {
    ...InputValue
  }
  interfaces {
    ...TypeRef
  }
  enumValues(includeDeprecated: true) {
    name
    description
    isDeprecated
    deprecationReason
  }
  possibleTypes {
    ...TypeRef
  }
}

fragment InputValue on __InputValue {
  name
  description
  type { ...TypeRef }
  defaultValue
}

fragment TypeRef on __Type {
  kind
  name
  ofType {
    kind
    name
    ofType {
      kind
      name
      ofType {
        kind
        name
        ofType {
          kind
          name
          ofType {
            kind
            name
            ofType {
              kind
              name
              ofType {
                kind
                name
              }
            }
          }
        }
      }
    }
  }
}

此查询的结果(就像所有其他的 GraphQL 查询一样)是 JSON。您可以直接处理它或将它反序列化到一些数据结构中。此存储库提供了这类数据结构。最顶层类型是 GraphQLResponse。在将 JSON 反序列化为 GraphQLResponse(或以任何其他方式创建 GraphQLSchema)之后,它可以转换成 AST 表示并使用 SDLPrinterGraphQL-Parser NuGet 包打印出来。

introspection 响应的序列化示例:
using System.Text.Json;

string text = ...; // from HTTP introspection response
var response = JsonSerializer.Deserialize<GraphQLResponse>(text, new JsonSerializerOptions
{
    PropertyNameCaseInsensitive = true,
    Converters = { new JsonStringEnumConverter() }
});
var schema = response.Data.__Schema; // note that Data may be null, so check response.Errors 
GraphQLSchema 打印到 SDL 的示例:
GraphQLSchema schema = ...;

var converter = new ASTConverter();
var document = converter.ToDocument(schema);
var printer = new SDLPrinter(options);
var sdl = printer.Print(document);

// or use one-line extension method
var sdl = schema.Print();

GraphQL 有自己的语言来编写 GraphQL 模式,SDL - 模式定义语言。SDL 语法简洁直观,同时功能强大,表达性强。SDL 文档的一些示例可以在 graphql-sdl-exporter 项目中找到。

项目中的许多类型实现了 IHasDirectives 接口。该接口用于获取关于元素应用的指令的信息。官方规范中没有描述这种可能性,尽管 讨论 正在进行中,以便扩展规范以添加这个功能。如果服务器支持此功能,graphql-sdl-exporter 可以获取指令信息。

内省查询变体

此仓库提供了 4 种 内省查询 变体

  1. 经典 - 上文中提供的 "classic" 内省查询(不暴露应用的指令)。它符合规范的最新版本。
  1. ClassicDraft - 与 "classic" 相同,但对输入值进行了弃用处理。有关更多信息,请参阅 PR。它符合预发布(工作草案)版本的规范。

  2. 现代 - 修改后的 "classic" 内省查询,其中暴露了应用于模式元素的指令。这需要 GraphQL 服务器支持此功能。请参见 GraphQL.NET 作为此类服务器的示例。

  3. ModernDraft - 与 "modern" 相同,但对输入值进行了弃用处理。这是所有可用查询中最先进的。

产品 兼容和额外的计算目标框架版本。
.NET net5.0 已计. net5.0-windows 已计. net6.0 已计. net6.0-android 已计. net6.0-ios 已计. net6.0-maccatalyst 已计. net6.0-macos 已计. net6.0-tvos 已计. net6.0-windows 已计. net7.0 已计. net7.0-android 已计. net7.0-ios 已计. net7.0-maccatalyst 已计. net7.0-macos 已计. net7.0-tvos 已计. net7.0-windows 已计. net8.0 已计. net8.0-android 已计. net8.0-browser 已计. net8.0-ios 已计. net8.0-maccatalyst 已计. net8.0-macos 已计. net8.0-tvos 已计. net8.0-windows 已计.
.NET Core netcoreapp2.0 已计. netcoreapp2.1 已计. netcoreapp2.2 已计. netcoreapp3.0 已计. netcoreapp3.1 已计.
.NET Standard netstandard2.0 兼容. netstandard2.1 已计.
.NET Framework net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。
MonoAndroid monoandroid 已计算。
MonoMac monomac 已计算。
MonoTouch monotouch 已计算。
Tizen tizen40 已计算。 tizen60 已计算。
Xamarin.iOS xamarinios 已计算。
Xamarin.Mac xamarinmac 已计算。
Xamarin.TVOS xamarintvos 已计算。
Xamarin.WatchOS xamarinwatchos 已计算。
兼容目标框架
包含目标框架(在包中)
了解更多关于 目标框架.NET Standard 的信息。

NuGet软件包 (1)

显示对 GraphQL.IntrospectionModel 依赖的前 1 个 NuGet软件包

软件包 下载
Theauxm.GraphQL.Client

软件包描述

GitHub 仓库

此软件包没有被任何流行的 GitHub 仓库使用。

版本 下载 最后更新
0.0.22 1,688 12/12/2023
0.0.21 493 4/21/2023
0.0.20 947 4/21/2023
0.0.19 179 4/21/2023
0.0.18 164 4/21/2023
0.0.17 200 4/14/2023
0.0.16 837 12/2/2022
0.0.15 2,459 3/1/2022
0.0.14 1,127 8/2/2021
0.0.13 1,350 4/22/2021
0.0.12 347 4/20/2021
0.0.11 315 4/15/2021
0.0.10 410 3/24/2021
0.0.9 706 10/25/2020
0.0.7 392 10/25/2020
0.0.5 405 9/10/2020
0.0.4 496 7/6/2020
0.0.3 473 2/4/2020
0.0.2 505 12/9/2019
0.0.1 484 12/9/2019