Нравится мне работать с Postman при работе с API и тестах своих контроллеров.
И как-то прекрасным днем, пришлось написать большой JSON кусок и отправить для запроса. Он состоял из набора uuid и мне хотелось в разных версиях данных пометить, как для человека, что там за ними скрывается.
Есть комментарии подумал я, и быстро набросал:
// Не используйте 42 в полях
{
"key": "value", //описание поля, заметки
"yet-another-key": true //true for truth
}
Да, это не тот запрос-монстр, а просто пример.
😭 Но такой запрос сервер не принял, так и сказал - мне ваши комментарии синтаксически не нужны. Присылайте без них.
🆗🆗🆗
Не вопрос, есть в Postman Pre-request Script. JS скрипт, который исполняется перед запросом. Там и можно очистить запрос от комментов.
Копируй скрипт и вставляй:
// Strip JSON Comments
if (pm?.request?.body?.options?.raw?.language === 'json') {
const rawData = pm.request.body.toString();
const strippedData = rawData.replace(
/\\"|"(?:\\"|[^"])*"|(\/\/.*|\/\*[\s\S]*?\*\/)/g,
(m, g) => g ? "" : m
);
pm.request.body.update(JSON.stringify(JSON.parse(strippedData)));
}
Скрипт распаковывает json в строку, далее удаляет комментарии и обновляет тело запроса.
НО, но, но…
Не сразу после этого взлетело, на меня ругались что формат переданных данных не application/json
, а text/plain
. Хотя в postman в Headers
был установлен формат Content-Type
. Скорее, после манипуляций формат ломался.
Решается добавлением своего параметра в Headers
Content-Type : application/json
✨ Красота! Теперь можно немного расслабить мозг и не запоминать, за что отвечают наборы нечитаемых значений в json.