Что такое 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”