приём и чтение записей сведены к одному контракту приложения
- адреса приложения переехали в своё пространство `/app/`, опрос готовности убран целиком: рубеж и причину остановки владелец узнаёт карточкой записи, текст — отдельным адресом названного вида - заведена единая точка отображения доменной ошибки и слой, приводящий к той же форме отказы библиотеки: тело несёт машиночитаемый код рядом с сообщением - у записи появились имя файла отправителя, длительность и размер своими колонками, а у ленты владельца — свой индекс: без него страница сканировала весь архив сервиса
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
# Приложение живёт своим пространством адресов, а не общим с хранилищем
|
||||
|
||||
- **Дата:** 2026-08-15
|
||||
- **Источник:** openspec/changes/archive/2026-08-15-app-json-contract/design.md,
|
||||
раздел «Переезд в `/app/`, а слой сессии — на корень»
|
||||
|
||||
## Решение
|
||||
|
||||
Все адреса приложения переехали из `/api/` в собственный корень `/app/`, а слой
|
||||
предъявления сессии повешен на **группу корня**, а не на перечень адресов.
|
||||
|
||||
## Почему
|
||||
|
||||
Пространство `/api/` принадлежит хранилищу: оно вешает туда собственные наборы
|
||||
адресов, и поменять этот префикс нельзя — он литерал библиотеки, а не настройка.
|
||||
Свободных имён сегодня хватает, но соседство остаётся: обновление библиотеки
|
||||
вправе занять новое имя рядом с нашим, и разойдутся они молча — тем же адресом
|
||||
начнёт отвечать не тот обработчик.
|
||||
|
||||
Прецедент в проекте уже принят тем же доводом: адреса входа вынесены на `/auth/*`
|
||||
решением от 2026-08-12.
|
||||
|
||||
Слой на корень, а не на перечень: «перечень рос бы с каждым новым адресом
|
||||
приложения, и забытый в нём адрес молча перестал бы принимать куку».
|
||||
|
||||
## Последствия
|
||||
|
||||
- `+` соседство с чужими адресами кончилось: имя, занятое библиотекой, наших
|
||||
адресов больше не задевает;
|
||||
- `+` новый адрес приложения получает слой предъявления по построению, а не по
|
||||
памяти того, кто его добавил;
|
||||
- `−` правило неизвестного пути перечисляет теперь четыре корня сервиса вместо
|
||||
одного: `/api/`, `/app/`, `/auth/` и `/_/`;
|
||||
- `−` ограничитель частоты хранилища, настроенный на его собственный корень,
|
||||
наших адресов не покрывает — своё правило заводится нами, и его включение
|
||||
вводит в действие заодно умолчательные правила хранилища;
|
||||
- `−` ломка полная: прежние адреса приёма и опроса отвечают `404`. Оплачено
|
||||
стадией — на сервере данных нет, внешней программы на прежнем контракте не
|
||||
существует.
|
||||
Reference in New Issue
Block a user