Fabric API for GraphQL 提供图形化的浏览器内 GraphQL 开发环境,它提供了一个交互式场所供你编写、测试 GraphQL 查询和突变以及查看它们的实时结果。
若要转到编辑器,请从 Fabric 中的工作区中打开 GraphQL 项的 API,然后在门户屏幕左下角选择 “查询 ”。
直接在 “查询 ”选项卡上键入和执行 GraphQL 查询。Intellisense 功能可通过键盘快捷方式使用:CTRL + 空格(Windows),或命令 + 空间(macOS)。 选择 “运行” 以执行查询并从数据源检索数据。
生成代码
测试和原型制作所需的 GraphQL作后,API 编辑器会根据编辑器中执行的查询或突变生成样本 Python 或 Node.js 代码。 可以在本地运行生成的代码进行测试,并在应用程序开发过程中重复使用部分代码。
重要
生成的代码将使用交互式浏览器凭据,且应仅用于测试目的。 在生产环境中,请务必在 Microsoft Entra 中注册应用程序,并使用相应的 client_id 和范围。 可以在连接应用程序中找到包含示例代码的端到端示例。
若要开始,请执行查询,选择 “生成代码 ”按钮,然后相应地选择语言:
然后,可以复制生成的代码并将其另存为本地文件夹中的文件。 根据所选语言,按照以下简单步骤在本地测试:
Python
通过运行命令
python -m venv .venv创建虚拟环境。venv通过运行.venv\Scripts\activate或source .venv/bin/activate.通过运行
pip install azure.identity来安装所需的依赖项。使用
python <filename.py>. 执行代码。
Node.JS
在与保存的文件所在的相同文件夹中,创建包含以下内容的
package.json文件:{ "type": "module", "dependencies": {} }在所选的包管理器中运行
npm install --save @azure/identity或类似的命令,以安装最新版本的标识库。使用
node <filename>.js. 执行代码。
查询和突变的开发
查看此简短的 GraphQL 架构。 它定义了一种 Post 类型,其中包含用于读取单个帖子或列出所有帖子的查询,以及用于创建、更新或删除帖子的突变,支持所有 CRUDL(创建、读取、更新、删除、列出)用例。
{
type Post {
id: ID!
published: Boolean
}
type Query {
getPost(id: ID!): Post
getAllPosts: [Post]
}
type Mutation {
createPost(title: String!, content: String!, author: String!): Post
updatePost(id: ID!, title: String, content: String, author: String, published: Boolean): Post
deletePost(id: ID!): Boolean
}
}
使用架构中定义的任何查询读取通过 GraphQL 公开的数据。 查询 getPost 如以下示例所示。
query MyQuery {
getPost(id: "1234") {
title
content
author
}
}
响应:
{
"data": {
"getPost": {
"title": "First Post",
"content": "This is my first post.",
"author": "Jane Doe"
}
}
}
使用突变,例如 createPost 写入数据并创建包含所需参数的帖子。
mutation MyMutation {
createPost(title: "Second post", content: "This is my second post", author: "Jane Doe", published: false) {
id
title
content
author
}
}
响应:
{
"data": {
"createPost": {
"id": "5678",
"title": "Second Post",
"content": "This is my second post.",
"author": "Jane Doe"
}
}
}
查询变量
使用“查询”选项卡右侧的“查询变量”窗格将参数作为变量传递给查询或突变。 变量与其他编程语言中的变量一样工作。 每个变量都声明有一个用于访问存储在其中的值的名称。 使用前面的突变示例,可以稍微修改它以使用查询变量。
mutation MyMutation ($title: String!, $content: String!, $author: String!){
createPost(title: $title, content: $content, author: $author) {
id
title
content
author
}
}
使用以下示例在窗格中定义变量。
{
"id": "5678",
"title": "Second Post",
"content": "This is my second post.",
"author": "Jane Doe"
}
变量使突变代码更简洁、更易于读取、测试和修改。