Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
API Fabric для GraphQL предоставляет графическую среду разработки GraphQL в браузере, которая позволяет интерактивной игровой площадке создавать, тестировать и просматривать динамические результаты запросов и мутаций GraphQL.
Кто использует редактор GraphQL
Редактор GraphQL имеет важное значение для следующих элементов:
- Разработчики приложений прототипируют и тестируют запросы к данным Fabric перед их реализацией в приложениях
- Инженеры данных изучают структуры данных lakehouse и хранилища данных и проверяют схемы GraphQL
- Участники рабочей области Fabric проверяют разрешения доступа к данным и устраняют проблемы с запросами
- Разработчики бизнес-аналитики изучают структуру API и создают шаблоны доступа к данным для пользовательских приложений
- Команды разработчиков сотрудничают с разработкой запросов и устранением проблем с доступом к данным в рабочих областях Fabric
Используйте редактор всякий раз, когда необходимо интерактивно разрабатывать, тестировать или отлаживать запросы GraphQL к источникам данных Fabric.
Начало работы с редактором GraphQL
Выполните следующие действия, чтобы начать работу с редактором GraphQL:
Откройте элемент API GraphQL. Перейдите к рабочей области в Fabric и откройте API для элемента GraphQL.
Доступ к редактору — выберите запрос в левом нижнем углу экрана портала.
Напишите запрос . Введите запросы GraphQL непосредственно на вкладке "Запрос ". Используйте Intellisense с сочетаниями клавиш:
- Windows: CTRL + ПРОБЕЛ
- macOS: команда + пробел
Выполните запрос. Выберите"Выполнить" , чтобы выполнить запрос и получить данные из источника данных.
Создание кода
Редактор API автоматически создает стандартный код Python или Node.js, который отражает запрос GraphQL или мутацию, которую вы сейчас тестируете в редакторе. По мере создания прототипа и уточнения запросов созданный код обновляется соответствующим образом. Когда вы удовлетворены результатами, вы можете просмотреть и скопировать созданный код, чтобы выполнить локально для тестирования или повторно использовать его в процессе разработки приложений.
Внимание
Созданный код использует учетные данные интерактивного браузера и должен использоваться только для тестирования. В производственной среде всегда регистрируйте приложение в Microsoft Entra и используйте соответствующие client_id и области действия. Полный пример можно найти в примере кода в Connect Applications.
Чтобы приступить к работе, выполните приведенные действия.
Напишите запрос . Введите следующий пример запроса (или собственный) в редакторе запросов:
query { addresses(first: 5) { items { AddressID City StateProvince CountryRegion } } }Запустите запрос. Выберите"Запустить" , чтобы выполнить запрос, и убедитесь, что он работает правильно в редакторе, прежде чем продолжить.
Создайте код . Нажмите кнопку "Создать код ", а затем выберите предпочитаемый язык программирования (Python или JavaScript/Node.JS):
Затем можно скопировать созданный код и сохранить его в виде файла в локальной папке. В зависимости от выбранного языка выполните следующие быстрые действия, чтобы протестировать локально:
Python
Создайте файл с именем
editor.pyи вставьте созданный код из приведенного выше примера запроса.Создайте виртуальную среду, выполнив команду
python -m venv .venv.Активация
venvпутем выполнения.venv\Scripts\activateилиsource .venv/bin/activate.Установите необходимую зависимость, выполнив команду
pip install azure-identity.Выполните код с помощью
python editor.py.Вам будет предложено войти через окно браузера для проверки подлинности запроса.
Ответ API печатается в консоли.
{ "data": { "addresses": { "items": [ { "AddressID": 9, "City": "Bothell", "StateProvince": "Washington", "CountryRegion": "United States" }, { "AddressID": 11, "City": "Bothell", "StateProvince": "Washington", "CountryRegion": "United States" }, { "AddressID": 25, "City": "Dallas", "StateProvince": "Texas", "CountryRegion": "United States" }, { "AddressID": 28, "City": "Phoenix", "StateProvince": "Arizona", "CountryRegion": "United States" }, { "AddressID": 32, "City": "Montreal", "StateProvince": "Quebec", "CountryRegion": "Canada" } ] } } }
Node.JS
Создайте файл с именем
editor.jsи вставьте созданный код из приведенного выше примера запроса.В той же папке
editor.jsсоздайте файлpackage.jsonсо следующим содержимым:{ "type": "module", "dependencies": {} }Установка Node.js на компьютере разработки (включает npm)
Выполните
npm install @azure/identityили аналогичную команду в выбранном менеджере пакетов, чтобы установить самую последнюю версию библиотеки удостоверений.Запустите
node editor.js, чтобы выполнить код.Вам будет предложено войти через окно браузера для проверки подлинности запроса.
Ответ API печатается в консоли.
{ "data": { "addresses": { "items": [ { "AddressID": 9, "City": "Bothell", "StateProvince": "Washington", "CountryRegion": "United States" }, { "AddressID": 11, "City": "Bothell", "StateProvince": "Washington", "CountryRegion": "United States" }, { "AddressID": 25, "City": "Dallas", "StateProvince": "Texas", "CountryRegion": "United States" }, { "AddressID": 28, "City": "Phoenix", "StateProvince": "Arizona", "CountryRegion": "United States" }, { "AddressID": 32, "City": "Montreal", "StateProvince": "Quebec", "CountryRegion": "Canada" } ] } } }
Разработка запросов и мутаций
В следующих примерах демонстрируется синтаксис запросов GraphQL и мутаций с помощью примера данных AdventureWorks. В этих примерах предполагается, что вы работаете с хранилищем данных Fabric, поддерживающим операции записи (мутации). Источники данных, доступ к которых осуществляется через конечные точки аналитики SQL (например, Lakehouses и зеркальные базы данных), доступны только для чтения и поддерживают только запросы, а не мутации.
Просмотрите этот краткий фрагмент схемы GraphQL из AdventureWorks. Он определяет Product тип с запросами для чтения одного продукта или перечисления всех продуктов, а также с мутаторами для создания, обновления или удаления продуктов, поддерживая все сценарии использования CRUDL (создание, чтение, обновление, удаление, перечисление).
{
type Product {
ProductID: Int!
Name: String!
ProductNumber: String!
Color: String
ListPrice: Float!
SellStartDate: DateTime!
}
type Query {
products(first: Int, filter: ProductFilterInput): ProductConnection
products_by_pk(ProductID: Int!): Product
}
type Mutation {
createProduct(Name: String!, ProductNumber: String!, ListPrice: Float!, SellStartDate: DateTime!): Product
updateProduct(ProductID: Int!, Name: String, Color: String, ListPrice: Float): Product
deleteProduct(ProductID: Int!): Boolean
}
}
Чтение данных, предоставляемых с помощью GraphQL, с помощью любого запроса, определенного в схеме. Запрос products_by_pk извлекает один продукт по первичному ключу.
query MyQuery {
products_by_pk(ProductID: 680) {
ProductID
Name
ProductNumber
Color
ListPrice
}
}
Ответ.
{
"data": {
"products_by_pk": {
"ProductID": 680,
"Name": "HL Road Frame - Black, 58",
"ProductNumber": "FR-R92B-58",
"Color": "Black",
"ListPrice": 1431.50
}
}
}
Используйте мутации, такие как createProduct, чтобы записать данные и создать новый продукт с необходимыми параметрами.
mutation MyMutation {
createProduct(
Name: "Mountain Bike Helmet - Blue",
ProductNumber: "HE-M897-B",
ListPrice: 89.99,
SellStartDate: "2025-01-01T00:00:00Z"
) {
ProductID
Name
ProductNumber
ListPrice
}
}
Ответ.
{
"data": {
"createProduct": {
"ProductID": 1001,
"Name": "Mountain Bike Helmet - Blue",
"ProductNumber": "HE-M897-B",
"ListPrice": 89.99
}
}
}
Переменные запроса
Используйте область переменных запроса на вкладке Запрос справа, чтобы передать параметры в качестве переменных в запросы или мутации. Переменные работают как переменные на других языках программирования. Каждая переменная объявляется с именем, используемым для доступа к значению, хранящимся в нем. Используя предыдущий пример изменения, вы немного измените его, чтобы использовать переменные запроса.
mutation MyMutation ($name: String!, $productNumber: String!, $listPrice: Float!, $sellStartDate: DateTime!){
createProduct(
Name: $name,
ProductNumber: $productNumber,
ListPrice: $listPrice,
SellStartDate: $sellStartDate
) {
ProductID
Name
ProductNumber
ListPrice
}
}
Определите переменные в области переменных запроса , используя следующий пример.
{
"name": "Mountain Bike Helmet - Blue",
"productNumber": "HE-M897-B",
"listPrice": 89.99,
"sellStartDate": "2025-01-01T00:00:00Z"
}
Переменные упрощают чтение, тестирование и изменение кода мутаций. Они также упрощают повторное использование одной и той же мутации с разными значениями, просто изменяя переменные.