Перейти к основному содержимому

Практикум REST и WebSocket — чек-лист самопроверки

Загрузка вопросов…

Вопросы

  1. Какие два сервиса входят в OrderDesk и на каких портах они работают локально?
  2. Кто единственный изменяет поле stockAvailable и почему?
  3. Какой префикс версии API используется в практикуме?
  4. Перечислите основные ресурсы catalog-api (/products, /reservations, …).
  5. Какие HTTP-методы и коды ответа у POST /api/v1/orders?
  6. Зачем REST между orders-api и catalog-api, а WebSocket — к браузеру?
  7. Что хранит orders-api, что остаётся в каталоге?
  8. Какие заголовки обязательны для межсервисного POST /reservations?
  9. Чем JWT отличается от API-ключа в этой архитектуре?
  10. Как получить access token в учебном стенде?
  11. Куда передаётся JWT при подключении WebSocket?
  12. Какой JSON-тип события рассылается при смене статуса заказа?
  13. Зачем в протоколе WS есть ping и pong?
  14. Что такое Idempotency-Key на резерве и что будет при повторе с тем же ключом?
  15. Какой HTTP-код ожидается, если catalog-api остановлен при создании заказа?
  16. Какой код при попытке зарезервировать больше, чем stockAvailable?
  17. Почему Postman может работать, а браузер — нет (CORS)?
  18. Какие переменные окружения Postman OrderDesk Local вы настраивали?
  19. В каком порядке идут запросы E2E в коллекции (товар → token → заказ → WS)?
  20. Что делает Pre-request Script с X-Request-Id на уровне коллекции?
  21. Как связаны CATALOG_API_KEY и Catalog:ApiKey?
  22. Какой таймаут HttpClient рекомендован для вызова каталога?
  23. Что проверяет негативный кейс POST /orders с quantity: 9999?
  24. Чем отличается ответ 401 на каталоге без ключа от 401 на orders без Bearer?
  25. Как в логах связать один заказ между Python и C#?
  26. Где в энциклопедии читать теорию REST и WebSocket до/после практикума?
  27. Что показывает интерактивная песочница на странице о разделе?
  28. Какие поля минимально нужны в теле POST /api/v1/products?
  29. Что такое Problem Details при 502 и зачем они клиенту?
  30. Какие три статуса заказа проходит учебный жизненный цикл (draft → …)?

Практические задания

  1. Поднимите catalog-api и orders-api, пройдите E2E в Postman по шагу 8 и сохраните экспорт коллекции.
  2. Остановите catalog-api, создайте заказ — зафиксируйте тело ответа 502 и скрин логов orders-api с X-Request-Id.
  3. Повторите POST /reservations с одним Idempotency-Key дважды — сравните stockAvailable до и после.
  4. Подключите WebSocket в Postman, создайте заказ, получите order.status_changed — выпишите полный JSON кадра.
  5. Настройте CORS на orders-api для http://localhost:3000 и вызовите GET /orders из простой HTML-страницы на другом порту.
  6. Прогоните негативную папку коллекции (401, 409, 502) и опишите в одном абзаце ожидаемый статус для каждого кейса.

Повторение

Если на половину вопросов ответ уверенный — вернитесь к сценарию и контракту. Итоги и FAQ по сбоям — 998.


Связанные материалы


См. также

Другие статьи этого же раздела в боковом меню (как на странице "О разделе").