GraphQL.IntrospectionModel 0.0.22
dotnet add package GraphQL.IntrospectionModel --version 0.0.22
NuGet\Install-Package GraphQL.IntrospectionModel -Version 0.0.22
<PackageReference Include="GraphQL.IntrospectionModel" Version="0.0.22" />
paket add GraphQL.IntrospectionModel --version 0.0.22
#r "nuget: GraphQL.IntrospectionModel, 0.0.22"
// 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>
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 表示并使用 SDLPrinter
从 GraphQL-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 种 内省查询 变体
- 经典 - 上文中提供的 "classic" 内省查询(不暴露应用的指令)。它符合规范的最新版本。
ClassicDraft - 与 "classic" 相同,但对输入值进行了弃用处理。有关更多信息,请参阅 PR。它符合预发布(工作草案)版本的规范。
现代 - 修改后的 "classic" 内省查询,其中暴露了应用于模式元素的指令。这需要 GraphQL 服务器支持此功能。请参见 GraphQL.NET 作为此类服务器的示例。
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 已计算。 |
-
.NETStandard 2.0
- GraphQL-Parser (>= 9.3.1)
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 |