Стабильный 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