ASP.NET Core 入门教学十七 GraphQL入门指南

2024-09-07 08:44

本文主要是介绍ASP.NET Core 入门教学十七 GraphQL入门指南,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

GraphQL 是一种用于 API 的查询语言,允许客户端请求所需的数据,并能够合并多个资源到一个请求中。在 ASP.NET Core 中使用 GraphQL 可以提供更灵活、高效和实用的数据查询方式。以下是 ASP.NET Core 中 GraphQL 的入门指南:

1. 安装必要的 NuGet 包

首先,你需要安装以下 NuGet 包:

  • GraphQL
  • GraphQL.Server.Transports.AspNetCore
  • GraphQL.Types
  • GraphQL.Utilities

你可以使用 NuGet 包管理器或 .NET CLI 来安装这些包。

2. 创建 GraphQL Schema

GraphQL 使用模式(Schema)来定义 API 的结构。你需要定义类型、查询和变更(如果需要的话)。以下是一个简单的例子:

 
using GraphQL;
using GraphQL.Types;public class BookType : ObjectGraphType<Book>
{public BookType(){Field(x => x.Id);Field(x => x.Title);Field(x => x.Author);}
}public class Query : ObjectGraphType
{public Query(){Field<BookType>("book", resolve: context => new Book { Id = 1, Title = "Sample Book", Author = "Author Name" });}
}public class Book
{public int Id { get; set; }public string Title { get; range="end-start" set; }public string Author { get; set; }
}public class MySchema : Schema
{public MySchema(IServiceProvider provider) : base(provider){Query = provider.GetRequiredService<Query>();}
}

3. 配置 GraphQL 中间件

在 Startup.cs 文件中配置 GraphQL 中间件:

 
public void ConfigureServices(IServiceCollection services)
{services.AddGraphQL(b => b.AddSchema<MySchema>().AddSystemTextJson());
}public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{if (env.IsDevelopment()){app.UseDeveloperExceptionPage();}app.UseRouting();app.UseEndpoints(endpoints =>{endpoints.MapGraphQL();});
}

4. 运行应用程序

现在你可以运行你的 ASP.NET Core 应用程序,并通过浏览器或其他工具(如 Postman 或 GraphiQL)访问 GraphQL 端点。

5. 执行查询

你可以执行以下查询来获取书籍信息:

 
query {book {idtitleauthor}
}

6. 高级功能

  • 输入类型:定义输入类型以便在变更中使用。
  • 变更:定义变更以修改数据。
  • 解析器:自定义解析器以处理复杂的业务逻辑。
  • 订阅:实现实时数据更新。

7. 资源

  • GraphQL 官方文档
  • GraphQL for .NET GitHub 仓库
  • ASP.NET Core GraphQL 教程

通过以上步骤,你可以在 ASP.NET Core 应用程序中集成 GraphQL,并开始构建灵活且强大的 API。

这篇关于ASP.NET Core 入门教学十七 GraphQL入门指南的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1144601

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

2、PF-Net点云补全

2、PF-Net 点云补全 PF-Net论文链接:PF-Net PF-Net (Point Fractal Network for 3D Point Cloud Completion)是一种专门为三维点云补全设计的深度学习模型。点云补全实际上和图片补全是一个逻辑,都是采用GAN模型的思想来进行补全,在图片补全中,将部分像素点删除并且标记,然后卷积特征提取预测、判别器判别,来训练模型,生成的像

poj 2104 and hdu 2665 划分树模板入门题

题意: 给一个数组n(1e5)个数,给一个范围(fr, to, k),求这个范围中第k大的数。 解析: 划分树入门。 bing神的模板。 坑爹的地方是把-l 看成了-1........ 一直re。 代码: poj 2104: #include <iostream>#include <cstdio>#include <cstdlib>#include <al

MySQL-CRUD入门1

文章目录 认识配置文件client节点mysql节点mysqld节点 数据的添加(Create)添加一行数据添加多行数据两种添加数据的效率对比 数据的查询(Retrieve)全列查询指定列查询查询中带有表达式关于字面量关于as重命名 临时表引入distinct去重order by 排序关于NULL 认识配置文件 在我们的MySQL服务安装好了之后, 会有一个配置文件, 也就