Fastifyмастерская APINode.js · JSON · понятный контракт

От интерфейса к серверу

Запрос. Проверка.
Полезный результат.

Как форма становится заявкой, каталог — ответом API, а ошибки — понятными сообщениями. Соберите запрос, изучите ответ и посмотрите, как эти данные выглядят в приложении.

Один запрос · три понятных шага
↗
01 / ИНТЕРФЕЙСОтправляет данныеPOST /api/requests
✓
02 / FASTIFYПроверяет и обрабатываетschema → handler → response
{ }
03 / ПРИЛОЖЕНИЕПоказывает результат201 Заявка создана
Готовим мастерскую…

Загружаем учебные данные и правила запросов.

Загрузка

Восемь практических задач

Попробуйте договориться с сервером

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

Загружаем сценарии…

01 / 08

Каталог услуг

Где пригодится

Данные для каталога, таблицы или формы выбора услуги.

01

Ваш запрос

Учебный контракт

Только маршруты этого стенда: /api/…. Внешние адреса не вызываются.

application/json

Меняйте значения. Серверные правила объяснят, какое поле не подходит.

Заголовки запроса не заданы

Для защищённого учебного маршрута: {"x-demo-key":"demo-local-key"}. Это публичный демонстрационный ключ, не пример хранения настоящего секрета.

Выберите сценарий, чтобы увидеть его ожидаемый результат.

02

Ответ

Ещё не отправлен
ID запроса появится после запуска
Что вернётся?

Выполните запрос слева. Здесь появятся HTTP-статус, данные или объяснение ошибки.

JSON-ответ
// Здесь будет результат выбранного запроса
Заголовки ответа
Пока нет ответа

Успешный HTTP-ответ и ошибка — части одного понятного контракта.

03

Как это выглядит в приложении

Демо · студия «Контур»

Этот экран получает каталог, заявки и сводку из того же учебного состояния. Создайте заявку или поменяйте её статус — показатели и список обновятся.

Заявки—в учебном наборе
Общая сумма—сумма заявок
В работе—статус in_progress
Услуги—в каталоге

Услуги

Первые три из каталога

Заявки

Последние изменения

Вымышленные данные. Они не создают заказов и платежей на сайте.

Заберите рабочий рецепт

Тот же запрос — в вашем коде

Запустите проект из архива, затем выполните запрос к локальному Fastify. Код запроса меняется вместе с полями выше.

Загружаем пример…

Команда curl рассчитана на Bash. В Windows используйте curl.exe с подходящими правилами кавычек либо пример fetch в Node.js.

Связь действия и результата

Последние запросы

До восьми запусков в этой вкладке. Нажмите строку, чтобы снова посмотреть её ответ.

История пока пуста. Начните с каталога услуг.

Настоящий сервер у вас

От модели — к HTTP-запросам

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

Скачать исходники ZIP ↓Посмотреть результаты проверенного прогона ↗
В корне распакованного проекта
npm ci
npm start

Откройте http://127.0.0.1:8792. Мастерская автоматически перейдёт в режим настоящего сервера.

Проверки: npm test. Остановка сервера: Ctrl+C.