Автор: Doug Wettlaufer

Это вторая статья из серии о том, как использовать Stargate API. Благодаря нашему сценарию написания кода и 15 минутам вы узнаете, как использовать Stargate GraphQL API прямо в браузере, чтобы решить некоторые проблемы, с которыми вы могли столкнуться при работе с REST API.

Если вы какое-то время работали с API или прочитали наш первый пост в этой серии о том, как начать работу с Stargate REST API, — вы знаете о недостатках любого REST API:

  • Чрезмерная выборка.API вернет больше данных, чем вам нужно.
  • Двусмысленность. Данные, которые вы получаете с помощью REST API, не защищены.
  • Напрасная трата полосы пропускания. Излишняя выборка будет стоить полосы пропускания при нескольких сетевых запросах.

Как и Stargate REST API, Stargate GraphQL API предназначен для баз данных Apache Cassandra®. Однако он предлагает значительное преимущество перед REST API, позволяя вам манипулировать несколькими элементами данных с помощью одного запроса и настраивать запросы для получения именно тех данных, которые вам нужны. Эта возможность устраняет избыточную выборку, а также возникающие из-за этого дополнительную работу и потерю полосы пропускания.

Хотя вы можете добавить Stargate GraphQL API в существующее развертывание Cassandra, вам не нужна уже существующая база данных, чтобы начать учиться ее использовать. Если у вас ее еще нет, вы можете бесплатно создать новую Astra DB здесь. Astra DB — это бессерверная база данных, основанная на Cassandra, и она поставляется с уже включенным API GraphQL.

Всего за несколько минут вы сможете приступить к работе с нашим сценарием Katacoda, который покажет вам, как использовать Stargate GraphQL API для выполнения стандартных операций создания, чтения, обновления и удаления (CRUD) данных в вашей базе данных Cassandra. Хотя вам не нужно знать Язык запросов Cassandra (CQL) для этого руководства, некоторое знакомство с ним поможет вам лучше понять некоторые особенности Cassandra, такие как ключи разделов и ключи кластеризации. Если вы хотите глубже погрузиться в Cassandra и CQL, DataStax предлагает вам бесплатную обучающую серию Основы Cassandra.

Технологии, которые мы будем использовать в сценарии:

Вы также перейдете к документации по API документов Stargate, но ненадолго, чтобы скопировать необходимые команды экспорта, которые вам понадобятся при настройке среды для сценария. Вы просто скопируете их в свой терминал. Эти скопированные переменные среды будут идентичны между API-интерфейсом документов и API-интерфейсом GraphQL, поэтому ни одна из вкладок не повредит.

Изучение вариантов использования Stargate GraphQL API

GraphQL — это язык запросов с открытым исходным кодом и среда выполнения, используемая для извлечения данных из поддерживаемого API в ваше приложение. Stargate GraphQL API был разработан специально для Cassandra и уже включен в Astra DB. Stargate GraphQL работает, сканируя вашу базу данных и автоматически создавая конечные точки HTTP для обслуживания запросов и мутаций для объектов, которые он находит в базе данных.

С помощью API Stargate GraphQL вы можете получать нужные данные в свои приложения непосредственно из Cassandra с помощью подхода, основанного на CQL. Подход, ориентированный на CQL, напрямую переводит таблицы CQL в типы, мутации и запросы GraphQL и автоматически создает схему GraphQL из заданного пространства ключей, таблиц и столбцов. Вы получите стандартный набор мутаций и запросов для поиска и изменения данных вашей таблицы, но вы не сможете их настраивать.

Если вы хотите использовать более нативный подход GraphQL для доступа к своим данным, вы можете вместо этого использовать подход Сначала схема. Такой подход к использованию Stargate GraphQL снижает потребность в знании CQL, поскольку создание и изменение таблиц CQL в базе данных Astra (например, имен таблиц и столбцов) для соответствия типам GraphQL абстрагируются, а в результирующих таблицах используются имена, ориентированные на GraphQL. для типов, которые соответствуют. Хотя вам не нужно отказываться от всего контроля, если вы этого не хотите, поскольку схема GraphQL может быть украшена аннотациями CQL.

Если вы уже использовали GraphQL раньше, вы обнаружите, что подход «сначала схема» знаком вам в том, как вы создаете типы, мутации и запросы GraphQL. Одним из больших преимуществ этого подхода является то, что он позволяет развертывать и обновлять схему без необходимости непосредственно воссоздавать таблицы и столбцы.

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

Использование Stargate GraphQL API с подходом, основанным на схеме

В нашем сценарии используются команды cURL, поэтому мы будем использовать терминал, а не GraphQL Playground. Однако здесь стоит упомянуть игровую площадку GraphQL, поскольку она предлагает еще один простой способ работы с GraphQL. Пути сервера структурированы таким образом, чтобы вы могли легко создавать новые схемы и взаимодействовать с API-интерфейсами GraphQL с помощью встроенных запросов.

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

  • Создайте таблицу и добавьте в нее несколько записей
  • Запросить запись из таблицы
  • Обновить запись
  • Удалить запись

И чтобы упростить чтение вывода JSON, мы добавим в наши команды cURL некоторый код для передачи вывода в jq («красивый принтер» для JSON).

С нашим сценарием Katacoda вы можете изучить основы использования Stargate GraphQL API с Astra DB в своем браузере всего за 15 минут. Затем вы можете начать применять те же шаги для работы с собственной базой данных Cassandra или Astra DB. Если у вас еще нет базы данных для работы, перейдите на сайт Astra DB, зарегистрируйте бесплатную учетную запись и начните учиться уже сегодня!

Подпишитесь на Технический блог DataStax, чтобы узнать больше историй разработчиков. Посетите наш канал YouTube для учебных пособий и здесь для разработчиков DataStax в Twitter, чтобы узнать последние новости о нашем сообществе разработчиков.

Использованная литература:

  1. Сценарий Katacoda, обсуждаемый в этой статье: Начало работы с API Stargate GraphQL для Apache Cassandra™
  2. Другие сценарии Astra Katacoda
  3. Что такое Астра БД? (документация Астры)
  4. Астра Ютуб уроки
  5. Углубитесь в сценарии катакоды Apache Cassandra™
  6. Присоединяйтесь к нашему Discord: Братство колец (Кассандры)
  7. API Звездных врат | GraphQL, REST, Документ
  8. Основы Кассандры
  9. Академия ДатаСтакс
  10. Сертификаты ДатаСтакс
  11. Мастерские ДатаСтакс
  12. Уточните свои потребности в базе данных с помощью DataStax Astra Stargate REST API
  13. Развертывание клона Netflix с GraphQL и DataStax Astra DB