Must-have Chrome extensions for WCAG Testing

В этой статье я вас поведу процессом создания серверлайс-API GraphQL с использованием TypeScript, AWS Lambda и Apollo Server.

Серверлайс-компьютинга

Серверлайс-компьютинга является модель выполнения облачных вычислений, где облачные провайдеры автоматически управляют инфраструктурой для запуска приложений. В этой модели разработчики пишут код, а облачный провайдер заботится о запуске, масштабировании и обслуживании серверов, что意味着 разработчики не должны заниматься управлением серверами, провайдением инфраструктуры или масштабированием. Термин “без серверов” не означает, что сервера вообще нет, а скорее, что задачи управления серверами отделены от разработчиков. AWS Lambda является серверлайс-сервисом вычислений, предоставляемым Amazon Web Services (AWS), который позволяет запускать код без провизиции или управления серверами

GraphQL

GraphQL — это язык запросов для API иRuntime для выполнения этих запросов. Он позволяет клиентам запрашивать только необходимые данные, что делает его более эффективным по сравнению с REST, который может переборать или недостачать данных. С GraphQL клиенты определяют форму и структуру ответа, получая несколько ресурсов в单次 запросе. Эта гибкость улучшает производительность и reduce сетевое overload. GraphQL является сильно типизированным, с схемой, определяющей доступные типы и операции. Он широко используется в современных приложениях, чтобы оптимизировать связь между front end и back end, позволяя более реагирующему и эффективному управлению данными.

Apollo Server

Это популярный открытый исходный сервер GraphQL, который помогает разработчикам легко создавать API GraphQL. Он упрощает процесс создания健壮ного и масштабируемого API GraphQL, обрабатывая определение схемы, выполнение запросов и форматирование ответов. Apollo Server поддерживает такие функции, как загрузка данных, кэширование и аутентификация, что делает его идеальным выбором для современных приложений. Он работает гладко с различными источниками данных, включая REST API, базы данных и микросервисы. Будучи оборудованным встроенными инструментами для мониторинга Performances и обработки ошибок, Apollo Server широко используется для упрощения разработки backend, обеспечивая эффективное и гибкое общение между клиентами и серверами в средах GraphQL.

为什么使用TypeScript?

这是JavaScript的超集,为该语言添加了静态类型。它在开发过程中帮助捕捉错误,提高代码的可读性,增强重构。通过提供类型安全和工具支持,TypeScript使应用程序更加可维护和可扩展,使其成为大型项目或团队的理想选择。

为什么我觉得无服务器和GraphQL如此默契(或者说“代码中的爱情故事”)

  1. 优化资源使用:GraphQL的精确数据获取与无服务器的按使用量付费模型完美对接,确保高效资源利用。
  2. 简化后端:无服务器函数可以高效处理GraphQL解析器,简化后端架构。
  3. 提高性能:GraphQL减少数据开销的能力转化为更快的应用程序,尤其是在与无服务器架构结合使用时。
  4. Скалярность: обе технологии прекрасно справляются с изменчивыми нагрузками, что делает их сочетание высокоскалярным.
  5. Экономичность: модель платного по использованию серверлаESS, сочетаясь с эффективным передачей данных GraphQL, может привести к значительным экономиям расходов.

“Комбинация серверлаESS и GraphQL позволяет быстро развивать масштабируемые и эффективные API. Это мощное сочетание может значительно сократить сроки разработки и операционные расходы.” – Nader Dabit, “Полностю серверлаESS

下是一个使用 AWS Lambda 中 GraphQL 的服务部署的分步指南。

  • Шаг 1: 初始化一个新的 TypeScript 项目并安装依赖。
Shell

 

  • Шаг 2: 用必要的元素定义 GraphQL 架构。
TypeScript

 

  • Шаг 3: 实现解析器:
TypeScript

 

  • Шаг 4: 创建 Lambda 处理程序:
TypeScript

 

  • Шаг 5: 配置 serverless 部署。创建一个 serverless.yml 文件:
service: serverless-graphql-api

provider:
  name: aws
  runtime: nodejs16.x
  stage: dev
  region: us-east-1

functions:
  graphql:
    handler: handler.graphqlHandler
    events:
      - http:
          path: graphql
          method: post
      - http:
          path: graphql
          method: get

plugins:
  - serverless-offline

Вы можете написать код непосредственно в Lambda AWS ( быстрое “Привет, мир”) и использовать соответствующие опции управления выпуском, такие как CDK или Terraform. Как и серверласс-расчеты, технология GraphQL продолжает развиваться, и мы можем ожидать появления еще более мощных инструментов и методологий.

Заключение

Принимая на вооружение серверласс GraphQL, разработчики могут создавать API, которые масштабируются без усилий и без потертости и которые снабждают клиентов только той информацией, которая им нужна. Это как будто иметь кристалл, который всегда знает с уверенностью, какую информацию следует загрузить и масштабировать.

Source:
https://dzone.com/articles/serverless-computing-and-graphql