当前位置: 首页 > news >正文

宁波住房和城乡建设局网站有源码怎么做app

宁波住房和城乡建设局网站,有源码怎么做app,简述织梦网站上传及安,百度竞价排名怎么做目录 一、介绍GraphQL二、GraphQL基本使用方法三、Schema 定义语言 (SDL)3.1 类型定义1)对象类型2)标量类型3)枚举类型4)输入类型5)列表类型6)非空类型7)接口类型8)联合类型 3.2 查询…

目录

    • 一、介绍GraphQL
    • 二、GraphQL基本使用方法
    • 三、Schema 定义语言 (SDL)
      • 3.1 类型定义
        • 1)对象类型
        • 2)标量类型
        • 3)枚举类型
        • 4)输入类型
        • 5)列表类型
        • 6)非空类型
        • 7)接口类型
        • 8)联合类型
      • 3.2 查询和变更
    • 四、示例
      • 4.1 schema定义示例
      • 4.2 查询示例

一、介绍GraphQL

GraphQL 是一种用于 API 的查询语言以及一个用于执行查询的服务器端运行时。它由 Facebook 开发,并在 2015 年开源。GraphQL 的主要目的是提供一种更高效、灵活的数据查询方式,替代传统的 REST API。

基本功能

基本功能描述
类型系统使用强类型系统定义 API 的数据结构。
查询客户端可以通过查询请求精确地获取所需的数据,减少数据传输量。
变更(Mutation)支持变更操作,用于创建、更新或删除数据。
订阅(Subscription)支持订阅功能,允许客户端订阅数据的变化,并在数据发生变化时接收实时更新。
解析器(Resolver)服务器端的函数,用于处理查询和变更请求。每个字段都有一个解析器来获取相应的数据。

使用场景

使用场景描述
复杂数据需求当客户端需要从多个资源中获取数据时,通过单个请求获取所有所需数据。
前端开发前端开发人员可以精确地查询所需数据,减少不必要的数据传输。
微服务架构作为聚合层,统一多个微服务的数据接口,简化客户端的调用逻辑。
实时应用通过订阅功能,适合需要实时数据更新的应用,如聊天应用、股票行情等。

使用者

使用者描述
FacebookGraphQL 的发明者,广泛使用 GraphQL。
GitHub提供基于 GraphQL 的 API,允许开发者查询和操作 GitHub 数据。
Shopify使用 GraphQL 提供其 API,帮助开发者构建电商应用。
Twitter使用 GraphQL 优化其数据查询和传输。
Pinterest通过 GraphQL 提供其 API,简化数据获取过程。

GraphQL 通过其灵活性和高效性,已经成为现代 Web 开发中不可或缺的一部分,广泛应用于各种复杂数据需求的场景。

二、GraphQL基本使用方法

GraphQL 是一种用于 API 的查询语言和一个用于执行查询的服务器端运行时,GraphQL 的基本使用方法如下:

  1. 定义 Schema:Schema 定义了 API 中的数据类型及其关系。
  2. 编写查询:客户端编写查询请求特定的数据。
  3. 执行查询:服务器执行查询并返回请求的数据。

三、Schema 定义语言 (SDL)

注:
详细语法说明参见:https://graphql.cn/learn/

GraphQL 的 Schema 定义语言 (SDL) 用于描述 API 的数据结构和操作。以下是一些常见的语法和示例:

3.1 类型定义

在 GraphQL 的 Schema 定义中,支持多种字段类型。以下是一些常见的字段类型及其说明。

1)对象类型

对象类型用于定义复杂的数据结构,可以包含多个字段,每个字段可以是任意类型(包括标量类型和其他对象类型)。

type Person {id: ID!name: String!age: Intfriends: [Person]
}
2)标量类型
  1. Int:整数类型,表示有符号 32 位整数。

    type Example {age: Int
    }
    
  2. Float:浮点数类型,表示有符号双精度浮点数。

    type Example {price: Float
    }
    
  3. String:字符串类型,表示 UTF-8 字符序列。

    type Example {name: String
    }
    
  4. Boolean:布尔类型,表示 truefalse

    type Example {isActive: Boolean
    }
    
  5. ID:唯一标识符类型,通常用作对象的唯一标识。

    type Example {id: ID
    }
    
3)枚举类型

枚举类型用于定义一组可能的值。

enum Role {ADMINUSERGUEST
}
4)输入类型

输入类型用于变更操作的输入参数。

input PersonInput {name: String!age: Int
}
5)列表类型

列表类型表示一组相同类型的值。

type Example {tags: [String]
}
6)非空类型

非空类型表示字段不能为空,在类型后面加 ! 表示。

type Example {name: String!
}
7)接口类型

接口类型定义一组必须实现的字段。

interface Character {id: ID!name: String!
}
8)联合类型

联合类型表示多个可能的类型。

union SearchResult = Person | Post

这些字段类型可以组合使用,以定义复杂的数据结构和操作。

3.2 查询和变更

  1. 查询类型:定义读取数据的入口点。

    type Query {person(id: ID!): Personpeople: [Person]
    }
    
  2. 变更类型:定义写入数据的入口点。

    type Mutation {addPerson(input: PersonInput!): Person
    }
    

四、示例

4.1 schema定义示例

以下是一个完整的 Schema 示例:

type Query {person(id: ID!): Personpeople: [Person]
}type Mutation {addPerson(input: PersonInput!): Person
}type Person {id: ID!name: String!age: Int
}enum Role {ADMINUSERGUEST
}input PersonInput {name: String!age: Int
}

这个示例定义了一个 Person 类型,一个 Role 枚举,一个 PersonInput 输入类型,以及查询和变更类型。

4.2 查询示例

  1. 查询单个 Person

    {person(id: "1") {idnameage}
    }
    

    结果示例

    {"data": {"person": {"id": "1","name": "John Doe","age": 30}}
    }
    
  2. 查询所有 People

    {people {idnameage}
    }
    

    结果示例

    {"data": {"people": [{"id": "1","name": "John Doe","age": 30},{"id": "2","name": "Jane Smith","age": 25}]}
    }
    
  3. 添加一个新的 Person

    mutation {addPerson(input: { name: "Alice", age: 28 }) {idnameage}
    }
    

    结果示例

    {"data": {"addPerson": {"id": "3","name": "Alice","age": 28}}
    }
    

http://www.yayakq.cn/news/190132/

相关文章:

  • 网站建设玖金手指花总微信定制v怎么弄
  • 怎样把自己做的网站上传到网上房产网网站
  • 衡水做wap网站费用怎么看网站是谁家做的
  • 做视频网站怎么挣钱吗网页升级维护
  • 电子商务网站建设的实训报告中文wordpress搭建
  • 怎么在网上做彩票网站wordpress 显示选项
  • 做网站的要多钱wordpress启用旧的编辑器
  • 卖护肤在哪个网站做宣传好做简历用的网站
  • 企业网站后端模板微网站工程案例展示
  • 网站联动是什么意思上海专业网站建设费
  • 交互型网站难做吗建设俄语网站
  • 有创意的广告图片及赏析WordPress安装两个seo插件
  • 网站改版需求说明php网站后台访问统计分析
  • 好的学校网站设计flash网站制作教程
  • php网站建设的几个流程三合一网站介绍
  • 律师事务所公司类网站建设案例免费的推广软件有哪些
  • 网站建好了还需要什么维护网站是意识形态建设
  • 单页网站作用是什么短视频营销案例分析
  • 想百度搜到网站新域名怎么做上海企业优化
  • 企业建站系统价格hyip系统网站开发
  • 个人网站必须备案搜索排名广告营销
  • 柳州网站建设找哪家wordpress page样式
  • 网站可以做充值吗专业软文平台
  • 广东省住房城乡建设厅门户网站大学网站建设评比考核办法
  • 网站建设需要多少钱做网站如何购买服务器
  • 网站建设公司获得风投500强室内设计公司排名
  • 网站开发中的qq登录邵阳企业网站建设
  • 合江做网站百度风云排行榜官网
  • 网站建设这门课网站和推广在一家做的好处
  • dedecms wap网站模板下载制作公司网站有哪些