中国校园网站做的比较好的学校,后端工资一般比前端高吗,当建设部门网站,网络公关公司收费GraphQL 图片来源#xff1a;
我们将探索GraphQL 的基础知识#xff0c;并学习如何使用Apollo将其与 React 和 React Native 等前端框架连接起来。这将帮助您了解如何使用 GraphQL、React、React Native 和 Apollo 构建现代、高效的应用程序。
什么是 GraphQL#xff1f;… GraphQL 图片来源
我们将探索GraphQL 的基础知识并学习如何使用Apollo将其与 React 和 React Native 等前端框架连接起来。这将帮助您了解如何使用 GraphQL、React、React Native 和 Apollo 构建现代、高效的应用程序。
什么是 GraphQL
GraphQL 是一种API 查询语言。它由 Facebook 开发作为一种更有效地获取数据的解决方案。 为什么选择 GraphQL
GraphQL 之前
REST API表述性状态转移应用程序编程接口是一种允许不同软件系统进行通信的标准化方式。
在 REST API 中每个端点都会返回特定的 JSON 数据负载。即使我们只需要某些字段它也会在每个请求中返回所有内容。
检索产品列表
HTTP 方法 GET端点(Endpoint) /api/products描述检索所有产品的列表。
Request:
GET /api/products/1
Response:
[{id: 1,name: Laptop,price: 999.99,category: Electronics,description: A high-performance laptop suitable for all your computing needs.,manufacturer: TechCorp,stock: {quantity: 50,warehouseLocation: Warehouse A},specifications: {processor: Intel Core i7,ram: 16GB,storage: 512GB SSD,screenSize: 15.6 inches},images: [https://example.com/images/laptop1.jpg,https://example.com/images/laptop2.jpg],ratings: {average: 4.5,count: 120},reviews: [{userId: 101,rating: 5,comment: Excellent laptop for work and play.,date: 2023-06-15},{userId: 102,rating: 4,comment: Great performance but a bit pricey.,date: 2023-06-20}]},{id: 2,name: Smartphone,price: 599.99,category: Electronics,description: A sleek and powerful smartphone with the latest features.,manufacturer: PhoneInc,stock: {quantity: 200,warehouseLocation: Warehouse B},specifications: {processor: Snapdragon 888,ram
此外REST API 的设计可能要求应用程序发出大量不必要的请求因为某些数据可能来自不同的端点。
这意味着为了检索有关特定数据您需要发出不同的 HTTP 请求。
随着用户对更快、更高效的应用程序的需求不断增长Facebook 认识到 REST API 中的这些问题。
2012 年该公司开始内部开发 GraphQL并于 2015 年向公众发布
GraphQL 如何工作
如上所述它是一种查询语言这意味着它仅使用查询获取您需要的数据。
使用 GraphQL
只需管理较少的端点/graphql灵活地与数据库、REST API、云服务和 JSON 文件集成 典型的 GraphQL 操作如下
通过查询从 GraphQL 服务器请求数据。在 GraphQL 服务器上调用一个函数来从适当的源获取数据。GraphQL 服务器向客户端返回响应。
GraphQL 附带一个名为 GraphiQL 的 IDE有助于开发人员测试 API。
Visual Studio 代码的 GraphQL 扩展
Visual Studio code的 GraphQL 扩展插件 GraphQL 的主要功能
声明式数据获取客户端指定所需数据的形状和大小。避免过度获取检索比所需更多的数据和获取不足检索比所需更少的数据。
单一端点与需要为不同资源设置多个端点的 REST 不同GraphQL 使用单一端点来访问所有数据。
强类型模式模式定义了可以查询的数据类型以及它们之间的关系。
订阅的实时数据客户端可以订阅数据变化并实时接收更新。
GraphQL 查询的基本结构
这是一个用于获取产品的简单 GraphQL 查询
通过 ID 获取单个产品
GraphQL 查询
query {product(id: 1) {idnamepricecategorydescription}
} JSON 请求
{query: query { product(id: 1) { id name price category description } }
}
响应示例
{data: {product: {id: 1,name: Laptop,price: 999.99,category: Electronics,description: A high-performance laptop suitable for all your computing needs.}}
}
添加新的、更新或产品变更
GraphQL 变更
mutation {addProduct(input: {name: Tablet,price: 299.99,category: Electronics,description: A lightweight tablet with a long battery life.}) {idnamepricecategorydescription}
}JSON 请求
{query: mutation { addProduct(input: { name: \Tablet\, price: 299.99, category: \Electronics\, description: \A lightweight tablet with a long battery life.\ }) { id name price category description } }
}
响应示例
{data: {addProduct: {id: 3,name: Tablet,price: 299.99,category: Electronics,description: A lightweight tablet with a long battery life.}}
}
更新 JSON 请求
{query: mutation { updateProduct(id: 1, input: { name: \Laptop\, price: 1099.99, category: \Electronics\, description: \An updated high-performance laptop with additional features.\ }) { id name price category description } }
}响应示例
{data: {updateProduct: {id: 1,name: Laptop,price: 1099.99,category: Electronics,description: An updated high-performance laptop with additional features.}}
}
如何将 GraphQL 与 JSON 结合使用
定义模式创建一个模式来定义 API 中可用的类型和字段。
设置服务器使用 Apollo Server 或 Express GraphQL 等服务器库来处理请求。
发送查询/变异使用 GraphiQL、Apollo Client 或 HTTP 客户端例如 Postman、cURL等工具以 JSON 格式发送查询和变异
处理响应处理来自服务器的 JSON 响应其中包括请求的数据或变异操作的确认。
GraphQL 能够处理复杂的查询并以 JSON 格式返回精确的数据这使其成为传统 REST API 的强大替代品能够实现更高效、更灵活的数据获取。