Перейти до основного вмісту

QueryBuilder

Новий клас QueryBuilder у NGql призначений для спрощення створення та роботи в цілому з GraphQL запитами.

Він надає зручний інтерфейс для побудови складних запитів, дозволяючи розробникам легко додавати поля, аргументи та вкладені запити до своїх запитів.

Крапконотація

Починаючи з версії 1.5.0 розробнику стає доступна "крапконотація" (dot-notation) для запису полів та вкладених полів.

Приклад використання
var builder = QueryBuilder
.CreateDefaultBuilder("GetUsers")
.AddField("users.name")
.AddField("users.email");
GraphQL запит
query GetUsers {
users {
name
email
}
}

це економить час та спрощує написання коду для побудови складних запитів.

Типізація полів

Базовий синтаксис додавання поля через .AddField(...) приймає рядок, наступного формату:

{typeMarker}? {alias}?:{fieldName}

де:

  • {typeMarker}? - необовʼязковий маркер типу (наприклад, User, [String!], і тд), який визначає тип обʼєкта, на який вказує останній сегмент шляху (після останньої крапки, якщо така є).

    Якщо не вказано, тип буде визначено як String. Якщо в подальшому поле містиме вкладені поля, тип буде перевизначено як Object.

    ? - необовʼязковий маркер, який вказує, що поле є необовʼязковим (nullable).

    [] - маркер масиву (array), який вказує, що поле є масивом.

  • alias - необовʼязковий псевдонім для поля, який буде використаний у запиті.

  • fieldName - імʼя поля або шлях до вкладеного поля, розділений крапками. Може містити вкладені псевдоніми.

Приклад використання
var query = QueryBuilder
.CreateDefaultBuilder("TypedUserQuery")
.AddField("UserProfile user.profile")
.AddField("String user.name")
.AddField("Int user.age")
.AddField("[] user.tags") // Array marker
.AddField("Post[] user.posts"); // Typed array
GraphQL запит
query GetUsers {
users {
name
email
}
}