首页
学习
活动
专区
圈层
工具
发布

GraphQL 实践与服务搭建

GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。...请求进行查询,其集中的 API 如 http://localhost:3000/graphql,所有的操作都通过这个接口来执行,这会在后面的操作中在展示到。...query​ 查询所有 People 并且只获取 name、gender、height 字段 查询 personID 为 1 的 Person 并且只获取 name,gender,height 字段...查询 personID 为 2 的 Person 并且只获取 name,eyeColor、skinColor、hairColor 字段 从上面查询案例中其实就可以发现,我只需要在 person 中写上想要获取的字段...不仅需要在后端中配置 GraphQL 服务,用于接收 GraphQL 查询并验证和执行,此外前端通常需要 GraphQL 客户端,来方便使用 GraphQL 获取数据,目前实用比较多的是Apollo Graph

6.3K10

《GraphQL 名词 101:解析 GraphQL 的查询语法》【译】

每天都会产生许多围绕这项技术发展的精彩讨论和新工具。GraphQL最棒的特性就是提供了一个丰富语言集来描述获取数据的API。但是用户该如何描述这种查询语言,以及GraphQL这项核心技术本身呢?... 这个请求体显示了GraphQL的主要构建块,它指定了你尝试获取的数据。 字段(Fields):客户端请求的数据单元,最后作为JSON响应数据中的一个字段。...但是在GraphQL操作中三种可选的部分都没有在上述栗子中使用。如果你不仅仅是用GraphQL执行查询操作,或是希望传递动态变量到GraphQL查询中,你就需要利用到这些新的GraphQL特性。...变量定义(Variable definitions):当客户端向GraphQL服务器发送查询时,会存在查询文档不变,当某些字段会动态变化的情况。这些就是查询中的变量。...选择集(selection set)是一个会在GraphQL 文档中经常出现的概念,它赋予了GraphQL递归的特性,允许你获取嵌套形式的数据。

3.7K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Gatsby中怎么加载图片?

    ,类似html 中的 img 标签,可以在页面中直接使用。...插件,转为数据层节点 ImageSharp; 使用 Graphql 查询 ImageSharp 节点数据,传递给 gatsby-plugin-image 插件提供的组件 GatsbyImage...譬如 gatsby-source-strapi 插件从strapi 获取数据生成 allStrapiArticles 节点,gatsby-transformer-sharp 也会为其 image 属性自动生成图片节点...五、显示 strapi 中包含的图片 1、问题说明 strapi 是可视化的 CMS(内容管理系统),markdown编辑的文档,可以很方便存储在 strapi中,且提供了RestApi访问存储是数据...怎么在gatsby中访问 strapi 中数据? 2、解决方案 借助插件 gatsby-source-strapi 把strapi中数据转为 gatsby 数据节点,方便访问。

    3.9K50

    MassCMS VS Strapi比较

    系统根据内容模型自动构建 API,使用 Strapi 示例可以轻松查看 CMS 中的数据。...REST & GraphQL API支持 Strapi 内置了一个强大的 RESTful API,开发人员可以使用它来创建和管理数据。...这使得开发人员可以选择任何前端框架或技术栈来呈现内容,并使用无头 CMS 的 API 来获取和管理内容。这种分离使得开发人员可以更好地控制应用程序的性能、安全性和扩展性,同时也提高了开发效率。...3.同时支持APIJSON,GraphQL,RESTFUL API 一些简单的查询可以使用RESTFUL,一些复杂的查询使用 GraphQL,大部分的CMS支持GraphQL,或者支持RESTFUL,但是...在目前市场上所有的CMS产品中,没有任何其它产品具备这样的功能。

    1.7K31

    GraphQL入门之查询片段的使用

    前面的文章介绍了 GraphQL 的查询操作,但是有时候我们要执行类似下面的这种查询操作,在一个查询中包含多个查询操作并且返回的对象结果相同的时候,重复去写这些属性列表也是比较冗余的事情,那么怎么简化这个写法呢...} 创建 Node.js 的工程 mkdir myapp cd myapp npm init (一路回车) 安装依赖包 npm install @apollo/server graphql 定义 Schema...创建 schema.graphql 文件,内容如下: type User { id: ID!...定义查询操作:定义了两个查询操作,users查询所有用户,user(id)根据id查询用户。...定义处理函数: users:返回上面初时的 User 数组。 user(obj, args, context, info):根据传入的 id 在 User 数组中查找,并返回查询结果。

    58810

    用 GraphQL 查询你的 Django 应用

    作为后端开发,学习和使用 GraphQL 的动力,更多是想将自己从 CRUD 的泥沼中拯救出来,将更多的精力放在其他更重要的技术上。...vs 扩展的 REST 协议 (此小节中图片拷贝自网络,懒得画) 和 REST 一样,GraphQL 并不是什么开发框架,它只是定义了一种通用型查询的 DSL。...传统的 REST 协议 假如我们需要获取所有用户维度的评论,我们需要先获取通过 /users 所有用户 id,再使用 id 列表遍历查询 /users//comments 来获取相关的列表。...相较于原生的 GraphQL ,客户端主要解决了几件事情: 客户端数据拉取缓存问题(包括缓存一致性、更新缓存等) 数据分页、声明式数据获取 ......可以在列表对象中增加 filter_fields ,针对不同的字段支持不同的 Django 复杂查询方法。

    2.9K60

    防止你的GraphQL API被恶意查询

    在这篇文章中,他描述了他们是如何在攻击中保护GraphQL API。 使用GraphQL,你可以随时查询想要的内容。 这对于使用API来说是惊人的,但也具有复杂的安全隐患。 ...例如,在Spectrum的GraphQL API中,我们有这样的关系: type Thread {   messages(first: Int, after: String): [Message] }...我们检查了我们的客户端,我们使用的最深的查询有7个级别,所以我们使用了(相当宽松的)最大深度为10的值,并将其添加到我们的验证规则中: app.use('/api', graphqlServer({   ...数量限制 上述查询的第二个有害方面是获取99999个对象。 无论这个对象是什么,取一吨它总是很耗时的。 ...尝试使用糟糕的查询来崩溃或放慢API,来检测它的承受能力 – 也许你的API是没有这些嵌套关系,或者它可以处理一次获取数千条记录,而且没有问题,这是不需要做查询成本分析的!

    2.4K10

    不会写后端不用愁,“Strapi”解你忧

    今天就跟大家分享一个利器——“Strapi”:不会写后端不用愁,“Strapi”解你忧。 Strapi简介 Strapi是一个开源的Headless CMS(无头内容管理系统)。...它允许开发者通过自定义的方式快速构建、管理和分发内容。...Strapi 提供了一个强大的后端 API,支持 RESTful 和 GraphQL 两种方式,使得开发者可以方便地将内容分发到任何设备或服务,无论是网站、移动应用。 Strapi使用 1....启动工程 在终端中输入如下命令: cd strapi-demo # 开发启动 npm run develop 3.创建用户 启动后会自动打开http://localhost:1337/admin/auth...查询 6.1 配置权限 可配置public的权限或生成一个token 6.1 curl请求示例如下: // 登录 curl --location 'http://localhost:1337/admin

    91510

    如何使用 Swift 中的 GraphQL

    前言我一直在分享关于类型安全和在 Swift 中构建健壮 API 的更多内容。今天,我想继续探讨类型安全的话题,介绍 GraphQL。GraphQL 是一种用于 API 的查询语言。...,我们只获取我们请求的数据,绝不会多余。...这个脚本下载模式并为你的查询生成 Swift 类型。你可以在这个脚本中轻松更改 GraphQL 端点以连接到你的 GraphQL 后端。我们已准备好使用 ApolloGraphQL 的项目。...现在我们可以向项目添加第一个查询。我们应该在项目中创建一个带有 .graphql 扩展名的文件,并将这些行放入文件中。...通过定义明确的模式文件,GraphQL 确保了请求和响应的一致性,使得开发者能够精准获取所需数据,避免多余信息的传输。此外,GraphQL 强类型的特性进一步提升了代码的可靠性和可维护性。

    1.3K22

    理解 GraphQL:现代 API 查询语言的详解与实践

    GraphQL 的起源与发展在传统的 RESTful API 架构中,客户端通常需要从多个端点获取数据,可能导致过度获取或获取不足的问题。...模式定义了可以在 API 中查询的数据类型,以及类型与用户可用的操作之间的关系。 查询(Query)查询是客户端向 GraphQL 服务器发出的请求,指定客户端想要获取哪些数据。...与查询的工作原理类似,变更根据模式及其定义进行验证,然后执行相应的操作。 解析器(Resolver)每个模式中的字段都由解析器支持,解析器填充数据并确定对一组字段的响应。...客户端可能需要多次请求才能获取所需的所有数据。而 GraphQL 使用单一端点,客户端可以在一次请求中获取所有需要的数据,避免过度获取和获取不足的问题。...版本控制在 REST 架构中,更改数据结构通常要求对 API 进行版本控制,以防止系统错误和中断服务。GraphQL 免除了版本控制的必要,因为客户端可以在查询中指定要求。

    82400

    Headless CMS是什么?

    Headless CMS的工作原理是,通过提供API(通常是RESTful或GraphQL或APIJSON)来让开发者获取和管理内容,而不是通过特定的模板和页面来展示内容。...但是,在当今的网络环境中,需要创建内容并将其分发到多个渠道:单页应用程序、移动设备、可穿戴设备、社交媒体站点以及内容联合平台。这就是无头CMS 的目的。...内容中台:无头CMS提供了一个集中管理和分发内容的平台。通过无头CMS的API,内容可以被灵活地分发到不同的渠道,包括网站、应用程序、社交媒体等。...它提供了丰富的API和开发工具,可以让开发人员快速构建和管理内容。 Strapi:Strapi是一个开源的无头CMS框架,它具有灵活的数据模型和丰富的插件生态系统,可以满足各种不同的项目需求。...GraphCMS:GraphCMS是一个GraphQL首选的无头CMS,它允许您使用GraphQL查询和管理内容。它提供了一个直观的界面和强大的工具,适用于开发人员和非开发人员。

    2.7K32

    Pytorch中Tensor与各种图像格式的相互转化

    前言 在pytorch中经常会遇到图像格式的转化,例如将PIL库读取出来的图片转化为Tensor,亦或者将Tensor转化为numpy格式的图片。...本文主要说明在pytorch中如何正确将图片格式在各种图像库读取格式以及tensor向量之间转化的问题。以下代码经过测试都可以在Pytorch-0.4.0或0.3.0版本直接使用。...pytorch或者python中处理的图像无非这几种格式: PIL:使用python自带图像处理库读取出来的图片格式 numpy:使用python-opencv库读取出来的图片格式 tensor:pytorch...中训练时所采取的向量格式(当然也可以说图片) 注意,之后的讲解图片格式皆为RGB三通道,24-bit真彩色,也就是我们平常使用的图片形式。...from PIL import Image import matplotlib.pyplot as plt # loader使用torchvision中自带的transforms函数 loader =

    15.6K70

    使用 strapi 快速构建 API 和 CMS 管理系统

    strapi 就是一款能够快速上手,让一个懂一点 Node.js 的前端开发就能够快速的开发出增删改查的接口来,最近刚好有使用到 strapi 作为网站的后端,刚好在这里记录一下自己学习的过程。...安装 strapi 直接使用官方提供的快速开始的模版,这里我使用 TypeScript 的模版,命令如下: npx create-strapi-app@latest my-api --quickstart...创建完模型之后,点击添加一个字段,选择 文本,设置名称为 username,选择 较短的文本,高级设置当中的类型选择 必须和 唯一的,其他的我们暂时用不到,实际中可以根据需要选择。...filters[username]=xiao strapi 也提供非常丰富的插件,比如要使用 GraphQL,直接安装 GraphQL 插件即可。...strapi 是在 koa 的基础上开发来的,我们可以通过设置,实现自己的业务逻辑,下面就用一个用户注册的接口来介绍一下使用 strapi 编写自定义业务逻辑的接口。

    15.1K44

    GraphQL在Python中的简单应用

    简介:GraphQL是什么,为什么要使用它GraphQL是Facebook开发的一种用于API的查询语言,以及一个用于执行这些查询的服务器端运行时。...它提供了一种灵活且高效的数据获取方式,允许客户端指定所需的数据结构,使得数据传输更高效。为什么要使用GraphQL?高效数据获取:客户端可以指定确切需要的数据,避免了过多或不足的数据传输。...编写GraphQL查询在使用GraphQL时,我们需要编写查询语句来获取数据。...例如,我们想获取前两个用户的信息,可以使用以下查询:{ users(first: 2) { id username email }}这个查询将返回以下结果:{ "data": {...通过这个教程,你应该能够在Python项目中使用GraphQL来进行高效的数据获取。

    1.8K00

    一文掌握 GraphQL 查询与突变的语法核心

    视频版更精彩 今天我们要聊一个在前端圈子里越来越火的技术 —— GraphQL。 它被称为 REST API 的“进阶替代者”,让我们能像点菜一样,按需获取和修改数据。 那么,它到底是怎么做到的?...它的两大优势: 按需获取数据:不多不少,避免了 REST 常见的“数据过载”或“数据不足”。 单次请求多资源:一次查询就能拿到多个相关对象,减少了网络往返。...在 React 这种数据依赖复杂的应用里,GraphQL 就特别受欢迎。 二、GraphQL 查询(Query):怎么“拿数据”? 在 GraphQL 里,读取数据就是用 query。...这就是 GraphQL 的魅力:分层数据一次到手。 四、参数化查询:让请求更复用 硬编码查询条件(比如仓库名字)太死板。 GraphQL 支持查询变量,让你写一个通用模板,动态传参。...操作类型:query(查)、mutation(改) 灵活请求:只拿想要的数据 单一端点:一个 GraphQL 入口,覆盖各种需求 强类型 Schema:接口自带文档和约束 参数化查询:高复用、可动态化

    19310

    学习gatsby,从这里开始!

    速度快:网站所需数据在编译期就获取、压缩、优化完成,无需在打开网页时再花费时间从第三方获取数据,所以网站的访问速度非常快。 完善的插件库生态:2500多个插件可免费使用,极大缩短网站开发周期。...--- 二、Gatsby 简介 1、图解系统结构 数据统一:从 不同数据源(下图中 CMS、Private API 等) 获取数据,形成统一的数据结构( GraphQL Data Layer) 数据查询...:通过 GraphQL 查询 GraphQL Data Layer 中的数据 展示数据:通过React 编写HTML页面,把数据展示出来。...--- 3、用 strapi(CMS) 作为数据源来建立网站 详细步骤,看这里!...--- 5、怎么查询数据层数据? 详细步骤,看这里! --- 6、网站的中文全文搜索功能? 详细步骤,看这里! --- 7、怎么使用自定义字体? 详细步骤,看这里!

    2.8K20

    GraphQL 在微服务架构中的实践

    如上图所示,当我们访问 User 资源时,就可以通过 GraphQL 中的连接访问当前 User 的 Repo 和 Issue 等资源,我们不再需要通过多个 REST 的接口分别获取这些资源,只需要通过如下所示的查询就能一次性拿到全部的结果...请求从其他微服务中获取时,更不能通过简单的改变 SQL 查询来解决。...,也可以选择在 Resolver 中通过 HTTP 或者 RPC 的方式来自获取用户请求的资源。...如上图所示,当我们访问 User 资源时,就可以通过 GraphQL 中的连接访问当前 User 的 Repo 和 Issue 等资源,我们不再需要通过多个 REST 的接口分别获取这些资源,只需要通过如下所示的查询就能一次性拿到全部的结果...请求从其他微服务中获取时,更不能通过简单的改变 SQL 查询来解决。

    3.3K20
    领券