Бессерверная технология позволяет нам легко развертывать код без какого-либо системного администрирования. Одна из компаний, предоставляющих бессерверные услуги, - webtask.io, как указано на их веб-сайте:

Все, что вам нужно, это код,
Создание бессерверных конечных точек

Из любопытства и учебных целей я хотел запустить что-то на конечной точке webtask.io, поэтому я решил создать сервер GraphQL с Node.js.

Включение webtask.io в вашей среде разработки

Первым шагом было включение webtask.io в моей среде разработки для создания конечной точки HTTP GraphQL с Node.js.
интерфейс командной строки (CLI) мне показался наиболее подходящим, поскольку он дает возможность запускать код локально.

Следуйте этим инструкциям, если вы хотите установить интерфейс командной строки webtask.io (cli) в вашей собственной среде разработки.

Настройте сервер GraphQL с помощью экспресс

Вторым шагом было включение сервера GraphQL и его локальное тестирование.
Webtask предоставляет несколько моделей программирования из коробки, и можно было бы запустить GraphQL с помощью простой функциональной модели. Но поскольку с экспрессом запустить GraphQL немного проще, лучше всего было выбрать модель Пользовательское программирование с использованием пакета webtask-tools, предоставляемого Auth0

Придумывая следующий пример кода для создания сервера GraphQL с помощью express.

Интересной деталью является выражение 'use latest' в строке 1, которое сообщает веб-задаче о необходимости запуска кода в последней версии Node.js, что позволяет использовать некоторые функции, которые мы хочу без транспиляции.

Перед запуском этого кода на webtask.io мы можем протестировать его локально с помощью инструментов webtask cli.

$ wt-cli serve graphql.js
Your webtask is now listening for IPv4 traffic on 127.0.0.1:8080

Затем, сделав тестовый запрос и проверив, все ли работает нормально, мы можем выполнить следующую команду curl

$ curl -X POST \
http://127.0.0.1:8080 \
-H 'content-type: application/json' \
-d '{"query" : "{ hello }"}'

Ожидаемый ответ будет

{"data":{"hello":"Hello world!"}}

Развернуть на webtask.io

наконец, чтобы развернуть код на webtask.io, все, что нам нужно сделать, это выполнить следующую команду

$ wt create --name graphql graphql.js
* Hint: A package.json file has been detected adjacent to your webtask. Ensuring that all dependencies from that file are available on the platform. This may takea few minutes for new versions of modules so please be patient.
* Hint: If you would like to opt-out from this behaviour, pass in the --ignore-package-json flag.
Resolving 5 modules...
Provisioning 5 modules...
[email protected] is available
[email protected] is available
[email protected] is available
[email protected] is available
[email protected] is available
Webtask created
You can access your webtask at the following url:
https://wt-R4nd0mh4a5h-0.run.webtask.io/graphql

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

Наконец, давайте протестируем, сделав запрос с помощью curl из командной строки.

curl -X POST \
> https://wt-R4nd0mh4a5h-0.run.webtask.io-0.run.webtask.io/graphql \
> -H 'content-type: application/json' \
> -d '{"query" : "{ hello }"}'

Ожидаемый ответ будет таким же, как и раньше

{"data":{"hello":"Hello world!"}}

Резюме

С помощью всего нескольких строк кода мы можем запустить сервер GraphQL с наименьшими усилиями на конечной точке webtask.io.

Код

Репозиторий с полной кодовой базой можно найти здесь

Отказ от ответственности

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

Соединять