Встроенный REST клиент в PhpStorm

Последнее обновление: 03.07.2017 г.
Публикация: 19.04.2017 г.
Информация

Используешь REST API? Необходимо проверить работу веб-приложения? При создании API на основе REST, тебе точно пригодится инструмент для создания и тестирования HTTP-запросов. В этом руководстве описывается встроенный REST клиент в PhpStorm, который как раз и предназначен для таких целей.


1. Создание HTTP-запроса

REST клиент можно найти в главном меню IDE: [Tools → Test RESTful Web Service]. Инструмент открывается в новом окне, где ты можешь обрабатывать HTTP-запросы: вызывать их и проверять результаты каждого вызова.

В окне инструмента REST Client можно указать:

  • HTTP метод,
  • хост и порт для подключения,
  • путь,
  • заголовки,
  • параметры запроса,
  • тело запроса.

Теперь, например, создай простой GET запрос на хост http://www.google.com. Обрати внимание, если тебе необходимо использовать в запросе куки-файлы, то их можно создавать на вкладке Cookies.

PhpStorm: окно «REST Client»

Когда ты нажимаешь кнопку Run на панели инструментов окна REST Client (или нажимаешь Ctrl + Enter), запрос будет выполнен и откроется вкладка Response (ответ). Там ты увидишь тело ответа, которое может быть представлено в одном из 4-х форматов:

  • HTML — стандартизированный язык разметки документов во Всемирной паутине.
  • XML — расширяемый язык разметки.
  • JSON — текстовый формат обмена данными, основанный на JavaScript.
  • RAW — необработанные данные, без какого-либо форматирования.

Ещё можно экспортировать ответ в xml-файл или открыть его в браузере. Ниже пример ответа в формате HTML:

PhpStorm: пример ответа в формате HTML

Ниже пример ответа, возвращающего JSON:

PhpStorm: пример ответа в формате JSON

На вкладке Cookies показаны ключи и значения всех куки-файлов, которые были возвращены удалённым сервером. Куки могут быть изменены или удалены. При последующих запросах они будут отправлены на сервер.

PhpStorm: вкладка «Cookies»

Если тебя интересуют заголовки ответов, их можно увидеть на вкладке Response Headers.

PhpStorm: вкладка «Response Headers»

1.1. Создание заголовка авторизации

Для некоторых конечных точек (запросов) потребуется авторизация. Ты можешь добавить заголовок Authorization вручную при создании запроса. Например, при использовании какого-либо сервиса, может потребоваться токен, полученный через OAuth-авторизацию.

PhpStorm: пример заголовка авторизации

Для использования базовой аутентификации PhpStorm может помочь тебе сгенерировать заголовок. Для этого на панели инструментов окна REST Client нажми на иконку Generate Authorization Header (создать заголовок авторизации). Откроется окно, в котором ты сможешь ввести имя пользователя и пароль, для которых IDE сгенерирует заголовок.

PhpStorm: окно «Generate Authorization Header»

1.2. Куки-файлы

Как ты видел в предыдущем примере, куки-файлы, возвращаемые удалённым сервером, будут видны на вкладке Cookies и могут быть отредактированы. Также можно добавить собственные значения куки, если это необходимо для тестирования сервиса.

С помощью иконки Add или сочетания клавиш Alt + Insert (Cmd + N на Mac OS X), ты можешь добавить новую запись куки, в которой можно указать:

  • имя куки-файла,
  • значение куки-файла,
  • домен,
  • путь,
  • дата истечения срока действия куки-файла.

Этот функционал очень удобно использовать в тех случаях, когда REST сервис требует наличия определённых куки-файлов или использует их для получения данных сессии.

Заметка

Тот факт, что встроенный REST клиент поддерживает создание куки-файлов и добавление куки-файлов из ответа сервера, полезен при создании запросов, предназначенных для сервера, использующего сессии. Например, конечная точка основана на PHP и содержит функцию session_start(), которая позволяет использовать данные из сессии. А куки-файл, который идентифицирует пользователя, сохраняется и отправляется обратно на сервер при каждом последующем запросе.

PhpStorm: пример использования куки-файлов в сессии

2. Повторное использование запросов

PhpStorm отслеживает запросы, выполненные с помощью встроенного REST клиента. Ранее выполненные запросы можно запускать вновь, а также импортировать или экспортировать.


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

После выполнения HTTP-запроса, REST клиент помещает его в список Recent Requests (последние запросы). Доступ к этому списку можно получить через иконку Replay Recent Requests, расположенную на панели инструментов. Таким образом, воспроизводить прежние HTTP-запросы или работать с серией HTTP-запросов и переключаться между ними легко и просто.

PhpStorm: список «Recent Requests»

При выборе запроса из списка Recent Requests, вкладки Request и Cookies заполнятся значениями, которые были использованы в запросе ранее.


2.2. Импорт и экспорт запросов для повторного использования

Каждый HTTP-запрос, созданный с помощью встроенного REST клиента, может быть впоследствии экспортирован, а затем снова импортирован. Эта возможность позволяет тебе создавать серию HTTP-запросов, которые можно использовать при разработке. Создай запрос один раз, экспортируй и используй повторно при необходимости. Экспорт HTTP-запроса можно выполнить через иконку Export Request, расположенную на панели инструментов.

PhpStorm: окно «Save Request as XML»

Запросы хранятся в XML-файле, который можно редактировать при необходимости. Ты также можешь добавить эти экспортированные запросы в VCS, чтобы члены твоей команды могли воспользоваться ими во время разработки или для тестирования определённых вещей. Ниже представлен пример экспортированного запроса, который использует GitHub API и ищет код пользователя (организации) JetBrains, который содержит слово PhpStorm:

<RestClientRequest>
    <option name="biscuits">
        <list />
    </option>
    <option name="httpMethod" value="GET" />
    <option name="urlBase" value="https://api.github.com" />
    <option name="urlPath" value="/search/code" />
    <option name="headers">
        <list>
            <KeyValuePair>
                <option name="key" value="Accept" />
                <option name="value" value="application/json" />
            </KeyValuePair>
            <KeyValuePair>
                <option name="key" value="Cache-Control" />
                <option name="value" value="no-cache" />
            </KeyValuePair>
        </list>
    </option>
    <option name="parameters">
        <list>
            <KeyValuePair>
                <option name="key" value="q" />
                <option name="value" value="PhpStorm user:JetBrains" />
            </KeyValuePair>
        </list>
    </option>
    <option name="parametersEnabled" value="true" />
    <option name="haveTextToSend" value="false" />
    <option name="haveFileToSend" value="false" />
    <option name="isFileUpload" value="false" />
    <option name="textToSend" value="" />
    <option name="filesToSend" value="" />
</RestClientRequest>
Заметка

У разработчиков PhpStorm отличное чувство юмора! Куки-файлы в экспортированном запросе хранятся в опции с именем biscuits.

Импорт сохранённых запросов можно выполнить через иконку Import Request, расположенную также на панели инструментов. Стоит лишь выбрать нужный XML-файл и PhpStorm обновит вкладки Request и Cookies, используя значения из сохранённого запроса.

PhpStorm: окно «Select .xml File with REST Client Request»
Заметка

При разработке REST API очень удобно создавать кучу HTTP-запросов для примера и распространять их вместе с проектом. В этом случае, члены команды и пользователи API смогут использовать их для запуска из своих IDE.


3. Настройка параметров прокси-сервера

Если для подключения к хосту, который ты хочешь протестировать, должен использоваться прокси-сервер, то необходимо настроить его. Используй иконку Configure HTTP Proxy, расположенную на панели инструментов. Клик по ней откроет окно Proxy, в котором ты сможешь указать настройки прокси-сервера.

PhpStorm: окно «Proxy»

PhpStorm поддерживает автоматическое обнаружение прокси и может работать с HTTP и SOCKS прокси-серверами, включая те, которые требуют аутентификации.

Контрольные вопросы

Источники и дополнительные материалы