Рубрики
Без рубрики

GraphQL CRUD Java: Обзор

Что такое GraphQL CRUD Java? GraphQLCRUD java – это обширный фреймворк, построенный с использованием Grap… С тегами graphql, java, showdev, для начинающих.

Что такое GraphQL CRUD Java?

GraphQLCRUD java – это обширная платформа, построенная с использованием спецификации GraphQLCRUD, которая предоставляет спецификацию для общей работы поверх GraphQL. Он предоставляет пользователям множество возможностей для доступа и изменения своих данных из любых источников данных, к которым они подключены.

Общие Черты

  • Проверьте спецификации на наличие шаблонов и выберите только те, которые действительно будут работать для вашей конкретной базы данных или бизнес-требований.
  • Он предоставляет канонические версии и другие варианты, дающие вам обзор различных подходов, используемых в большинстве схем.
  • Сосредоточьтесь на своей бизнес-логике и данных и создавайте схемы, совместимые с GraphQL CRUD, на любом языке по вашему выбору.
  • Он абстрагируется от крупных поставщиков GraphQL, предоставляя вам гибкость и возможность миграции без перестройки ваших клиентов и решений.
  • Он фокусируется на производительности, предоставляя разработчикам мощные возможности запросов, которые не являются специфичными для каких-либо поставщиков решений GraphQL.

ГРУБЫЕ методы

GraphQL CRUD java определяет различные возможности CRUD, которые представляют различные операции, которые могут выполняться над набором объектов:

  • Создать: создание объекта
  • Обновление: обновление свойств определенного объекта
  • Удалить: удалить определенный объект по его идентификатору
  • Получить: получить конкретный объект по его идентификатору
  • Поиск: поиск нескольких объектов

Возможности

GraphQL CRUD java определяет различные возможности, которые разработчики могут включить для изменения того, какие запросы могут быть сделаны к службе. Примеры этих возможностей включают:

  • Разбиение на страницы: Возможность разбиения контента на страницы
  • Фильтрация: Возможность выполнять фильтрацию по определенным полям
  • Возможность подсчета: Возможность подсчета общего количества объектов
  • Согласованность: Возможность проверить, переопределяет ли операция записи данные

Как это работает?

Возьмите любую базу данных, java-движок GraphQL CRUD может автоматически генерировать схему GraphQL и обрабатывать запросы и мутации GraphQL. Вот что делает двигатель под капотом.

  • Java-движок GraphQL CRUD автоматически генерирует компоненты схемы GraphQL и создает связи между ними.
  • Он определяет определение типа GraphQL для вашей базы данных.
  • Предоставляет запрос с аргументами фильтр , order_by и страница .
  • Предоставляет мутации вставки с аргументом input , который поддерживает операцию вставки.
  • Обеспечивает обновление мутации с помощью фильтра и ввод аргумент, поддерживающий массовые обновления.
  • Предоставляет мутацию удаления с аргументом фильтр , который поддерживает массовое удаление.
Пример: Получить список всех учетных записей
#Input
{
  accounts {
    account_id
    status
    ssn
    }
}
#Output
{
  "data": {
    "accounts": [
      {
        "account_id": "19980001",
        "status": "Personal",
        "ssn": "CST01002"
      },
      {
        "account_id": "19980002",
        "status": "Personal",
        "ssn": "CST01002"
      },
      {
        "account_id": "19980003",
        "status": "Personal",
        "ssn": "CST01003"
      }
    ]
  }
}
Пример: Получение учетной записи с помощью первичного ключа
#Input
{
  account(account_id: 19980001) {
    account_id
    ssn
    status
    type
  }
}
#Output
{
  "data": {
    "account": {
      "account_id": "19980001",
      "ssn": "CST01002",
      "status": "Personal",
      "type": "Active"
    }
  }
}
Пример: Найдите клиента по имени Джеймс
#Input
{
  customers(filter: {
    firstname: {
      eq: "James"
    }
  }) {
    firstname
    lastname
    ssn
    phone
  }
}
#Output
{
  "data": {
    "customers": [
      {
        "firstname": "James",
        "lastname": "Drew",
        "ssn": "CST01036",
        "phone": "(216)555-6523"
      }
    ]
  }
}
Пример: Выберите 2 клиента из списка всех клиентов, начиная с первого
#Input
{
  customers(page: {
    limit: 2
  }) {
    firstname
    lastname
    ssn
    phone
  }
}
#Output
{
  "data": {
    "customers": [
      {
        "firstname": "John",
        "lastname": "Doe",
        "ssn": "CST01002  ",
        "phone": "(646)555-1776"
      },
      {
        "firstname": "Bob",
        "lastname": "Smith",
        "ssn": "CST01003  ",
        "phone": "(412)555-4327"
      }
    ]
  }
}
Пример: Выберите 2 клиента из списка всех клиентов, начиная со 2-го клиента
#Input
{
  customers(filter: {
    firstname: {
      startsWith: "J"
    }
  }, page: {
    limit: 2,
    offset: 2
  }) {
    firstname
    lastname
    ssn
    phone
  }
}
#Output
{
  "data": {
    "customers": [
      {
        "firstname": "Jack",
        "lastname": "Corby",
        "ssn": "CST01015  ",
        "phone": "(469)555-8023"
      },
      {
        "firstname": "James",
        "lastname": "Drew",
        "ssn": "CST01036  ",
        "phone": "(216)555-6523"
      }
    ]
  }
}

Пример: Вставьте новый объект клиента и верните вставленный объект клиента в ответ
#Input
mutation {
  createCustomer(input: {
    firstname: "James",
    lastname: "Corners",
    ssn: "CST00989"
  }) {
    firstname
    lastname
    ssn
  }
}
#Output
{
  "data": {
    "createCustomer": {
      "firstname": "James",
      "lastname": "Corners",
      "ssn": "CST00989"
    }
  }
} 
Пример: Обновите клиента с именем Bob и верните обновленный объект customer в ответе
#Input
mutation {
  updateCustomer (input: {
    firstname: "Andrew",
    lastname: "Moore"
  }, filter: {
    firstname: {
      eq: "Bob"
    }
  }) {
    firstname
    lastname
    ssn
  }
}
#Output
{
  "data": {
    "updateCustomer": {
      "firstname": "Andrew",
      "lastname": "Moore",
      "ssn": "CST01003"
    }
  }
} 
Пример: Удалите клиента, которого зовут Эндрю
#Input
mutation {
  deleteCustomer(filter: {
    firstname: {
      eq: "Andrew"
    }
  }) {
    firstname
    lastname
    ssn
    phone
  }
}
#Output
{
  "data": {
    "deleteCustomer": {
      "firstname": "Andrew",
      "lastname": "Moore",
      "ssn": "CST01003"
    }
  }
} 

Вы можете изучить всю схему и доступные запросы с помощью графического интерфейса. Вы можете расширить структуру в соответствии с вашими потребностями, чтобы сделать ее более надежной.

Чтобы получить подробное представление или внести свой вклад, ознакомьтесь с репозиторием GitHub здесь и если вам нравится работа, бросьте ⭐ в хранилище.

Приятного Чтения! ❤ ️

Оригинал: “https://dev.to/anisha/graphql-crud-java-overview-36dj”