Стабильный URL мока со своим slug
Выберите slug сами, и адрес мока переживёт любое удаление и пересоздание: один раз пропишите его в .env, CI и Postman и забудьте про поиск новых ссылок.
Случайный адрес мока хорош для одноразового теста и неудобен для всего, что должно его помнить. Пересоздали мок — адрес сменился, и значение в вашем .env, в секретах CI и в общем окружении Postman устарело. Свой slug позволяет выбрать адрес один раз: передайте slug при создании мока через API, CLI или веб-форму, и https://quickmock.dev/m/my-app-payments-dev продолжит работать после удаления и повторного создания, пока это имя не занял кто-то другой.
Чем мешает случайный адрес мока?
Каждый мок, созданный без slug, получает случайный slug из 12 символов, и для одноразового теста это именно то, что нужно. Но как только адрес где-то записан, это превращается в проблему. Вы удалили мок и создали заново — slug другой, и все места, где остался старый адрес, теперь указывают в пустоту: файл .env на ноутбуке коллеги, секрет в настройках CI, окружение в общей коллекции Postman, базовый URL в конфигурации песочницы партнёра.
Свой slug превращает адрес в то, что вы выбираете один раз. https://quickmock.dev/m/my-app-payments-dev можно вставить во все эти места и больше не трогать. Мок за этим адресом по-прежнему можно удалить, заменить другим ответом или дать ему истечь и создать заново: пока вы создаёте его с тем же slug, URL, который вызывают клиенты, не меняется.
С таким именем и просто удобнее жить. Читаемое имя в строке лога, в стек-трейсе или в упавшем пайплайне сразу говорит, о каком моке речь, без всякого поиска.
Как создать мок со своим slug?
Передайте slug при создании мока. В API это ещё одно поле JSON:
curl -X POST https://quickmock.dev/api/mocks \
-H 'Content-Type: application/json' \
-d '{"slug":"my-app-payments-dev","method":"GET","response_status":200}'У CLI для этого есть флаг, а в веб-форме рядом с суффиксом пути есть поле «Свой slug»:
quickmock create -slug my-app-payments-dev -s 200 -b '{"status":"ok"}'Slug состоит из 4–48 символов: строчные буквы, цифры и дефисы, начинается и заканчивается буквой или цифрой. Пробелы по краям обрезаются, заглавные буквы приводятся к строчным, поэтому My-App-Dev превратится в my-app-dev. Не передавайте поле или отправьте его пустым — получите случайный slug, как раньше. Slug неверного формата отклоняется ответом 422 validation_failed, и ничего не создаётся.
Если имя использовать нельзя, ответ будет 409 slug_taken. Он одинаков и когда slug держит другой живой мок, и когда имя недоступно по иной причине, так что просто выберите другое и повторите попытку.
Сколько времени адрес остаётся за вами?
Мок со своим slug живёт так же, как любой другой. Он истекает через заданный вами ttl_seconds (или через значение сервера по умолчанию, если вы его не задали) и в любом случае не проживёт дольше 30 дней с момента создания. До этого момента URL продолжает отвечать.
Чтобы продлить жизнь, вызовите продление с admin-токеном, полученным при создании:
curl -X POST https://quickmock.dev/api/mocks/my-app-payments-dev/extend \
-H "Authorization: Bearer $ADMIN_TOKEN"Срок истечения сдвинется вперёд, но не дальше потолка в 30 дней. Когда потолок достигнут, вызов вернёт 409 ttl_cap_reached, а мок истечёт по расписанию.
Slug освобождается сразу, как только мока не стало. Удалите мок через DELETE /api/mocks/<slug> или дайте ему истечь — и уже следующий запрос на создание может занять тот же slug, хоть с другим методом, статусом или телом. Так и обновляют стабильный URL: адрес остаётся, мок за ним новый, и у него новый admin-токен.
Что обычно идёт не так?
- Секреты в ответе. Читаемый slug легко угадать, а кто угадал, тот может вызвать URL. Считайте тело ответа публичным: никаких настоящих ключей, токенов и персональных данных. Журнал запросов — другое дело: он приватен по умолчанию и открывается только с admin-токеном, если вы не создали мок с
logs_public. - Слишком общее имя. Кто успел, тот и занял. Имена вроде
test,demoилиapi, скорее всего, уже заняты. Добавьте к slug префикс команды и приложения, напримерacme-checkout-staging. - Уверенность, что slug закреплён за вами. Он принадлежит моку только пока тот жив. После истечения любой может создать мок с таким же slug, поэтому продлевайте мок до срока и храните admin-токен там, где его можно найти.
- Ожидание, что slug можно переименовать. Slug фиксируется при создании, а обновление мока через
PUTего не меняет. Для другого адреса создайте новый мок и удалите старый.
Когда это нужно
Случайный slug меняется при каждом пересоздании, поэтому любой конфиг с сохранённым URL устаревает. Свой slug длиной от 4 до 48 символов даёт моку постоянный читаемый адрес, который можно зашить в окружения, секреты CI и настройки коллег.
Создать мок
curl -X POST https://quickmock.dev/api/mocks \
-H 'Content-Type: application/json' \
-d '{
"slug": "my-app-payments-dev",
"method": "GET",
"response_status": 200,
"content_type": "application/json",
"response_body": "{\"status\":\"ok\"}"
}'
Вызвать
curl https://quickmock.dev/m/<slug>
Что получите
GET /m/my-app-payments-dev -> 200 {"status":"ok"}
second create with the same slug -> 409 slug_taken
(until the first mock is deleted or expires)
Частые вопросы
- Что будет, если slug уже занят?
POST /api/mocksответит409с кодом ошибкиslug_takenи ничего не создаст. Slug недоступен, пока жив мок, который его держит, и снова становится доступным, как только этот мок удалён или истёк. Тот же код возвращается и для имён, которые нельзя использовать по другим причинам, так что понимайте его просто: выберите другой slug.- Делает ли свой slug мок публичным?
- Не больше, чем раньше, но читаемый slug угадать проще, чем случайный, а значит, любой, кто угадал URL, может его вызвать. Не кладите секреты в ответ. Журнал запросов по умолчанию остаётся приватным: он открывается только с admin-токеном, если вы не создали мок с
logs_public. - Можно ли потом изменить slug?
- Нет. Slug задаётся при создании мока, а обновление через
PUTего игнорирует. Чтобы перейти на другой адрес, создайте новый мок с новым slug, переключите на него клиентов и удалите старый.
Собери свой
Создать мокПохожие гайды
Обновлено: 2026-10-20