Пишем RESTful API - практика. Часть 2.

Эта заметка продолжает цикл посвященный всестороннему обзору архитектуры REST для MODX.

Здесь можно почитать введение
Здесь быстрый осмотр встроенного в MODX модуля modRestService
Здесь практика. Часть 1

В этой заметке затронем инструментарий для работы с REST вообще, не только для MODX.



Каким же образом лучше всего тестировать свои REST контроллеры, проверяя их работу.
Проще всего тестировать GET запросы, которые, к тому же, часто работают вообще без авторизации, выдавая базовую информацию, как например, список товаров интернет-магазина.

Такой запрос легко проверить просто в браузере. Напоминаю — наиболее удобно-читаемый результат выдает Firefox.

Вот такую картинку покажет простой REST запрос, выдающий просто список ресурсов.


Ну а что же делать с POST запросами, или еще более специфичными PUT, DELETE запросами? Здесь браузер уже не спасет. Необходим какой-то инструментарий.

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

Не буду много писать про запросы через консоль, эта информация легко гуглится. Мне, к примеру, понравилась вот эта статья — рекомендую для быстрого ознакомления.

Сразу же объясню почему я не затрагиваю подробно тему с запросами через консоль. Консоль выдает ответ как неформатированную кашу.



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

Переходим наконец к главному. Не единственный, но один из лучших инструментов для работы с REST запросами — это утилита Postman. Для работы ее нужно скачать на компьютер.
  • Она бесплатна
  • Позволяет работать со всеми современными глаголами (видами запросов)
  • Позволяет хранить проекты и сохраняет историю работы, а значит можно работать сессионно, не потеряв вчерашнюю историю тестирования
  • Работает и красиво форматирует любой формат ответа, хоть JSON, хоть XML
  • Позволяет работать с куками, что важно для MODX, который как известно хранит идентификатор пользователя, а следовательно и доступ к его авторизации и правам в куке PHPSESSID


С теорией вроде плюс-минус все.

Я прикинул по всякому — эта серия получается слишком абстрактной, без каких либо реальных действий.
Думаю лучше будет поступить несколько по другому.
Сделаю реальный компонент как дополнение к реальному действующему интернет-магазину, выложу его или на gitHub в виде исходников или в modstore.pro а здесь расскажу и покажу что и как работает, ссылаясь на конкретные рабочие материалы. Рассмотрим пошаговый процесс создания такого компонента?
Николай Савин
24 ноября 2019, 20:21
modx.pro
331
+17
Поблагодарить автора Отправить деньги

Комментарии: 7

Алексей Соин
25 ноября 2019, 07:38
+2
Сразу же объясню почему я не затрагиваю подробно тему с запросами через консоль. Консоль выдает ответ как неформатированную кашу.

Возможно есть какие то методы это исправить
Нашел вот такую cli node утилиту https://github.com/ddopson/underscore-cli она не только форматирует вывод, а ещё и подсветку синтаксиса делает. Вдруг кому интересно будет =)

Алексей Шумаев
26 ноября 2019, 10:48
+4
Рассмотрим пошаговый процесс создания такого компонента?
Конечно!
Это интересно и нужно; такие материалы повышают навыки разработчиков, развивают сообщество и в целом двигают revolution ) Респект!
    Сергей Шлоков
    06 декабря 2019, 09:03
    0
    Сделаю реальный компонент как дополнение к реальному действующему интернет-магазину
    На кого решил замахнуться? )
      Николай Савин
      06 декабря 2019, 15:15
      +1
      Дяденька не ругайтесь, я нечайно. Оно само как то выходит!
        Сергей Шлоков
        06 декабря 2019, 15:18
        0
        Вопрос про интернет-магазин. Кому повезет?
          Николай Савин
          06 декабря 2019, 15:20
          0
          Мой магазин shop.krendel.kz будет донором. Как раз нужно API для мобильного приложения.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      7