fix(cuod+docs): Resurs-P/Канопус/Метеор/Электро/Арктика в seed + правильный read-api путь
Альтум-команда обнаружила что /api/v1/dictionaries/{name}/records даёт 500
и spacecraft_codes ссылаются на несуществующий "RESURS-P-3". Оба бага мои:
1. Read-api живёт на /api/v1/{name}/records (БЕЗ /dictionaries/ префикса).
/dictionaries/* — это admin-write контроллер, у него GET-list нет.
Fix: docs/integration/altum-imaging-order.md + docs/tech/api-integration.md
обновлены с правильными URL'ами + примером ответа из live staging.
2. spacecraft seed имел только 4 КА (Terra, Sentinel-1A/2A, Кондор-ФКА),
а mission.spacecraft_codes ссылался на пустые/RESURS-P-3 — каскад в
"Заказ съёмки" не работал бы.
Fix: добавлено 10 российских КА (Ресурс-П 1-4, Канопус-В 1+5, Метеор-М 2+2-2,
Электро-Л 2, Арктика-М 1) с COSPAR designators как businessKey.
3. mission.records.json + instrument.records.json: spacecraft_codes теперь
ссылается на реально существующие COSPAR-ключи. Каскад работает:
instrument MSU-MR → spacecraft [2014-037A, 2019-038A] → Метеор-М № 2 / 2-2.
После redeploy и идемпотентного пересева:
spacecraft 14 (было 4, +10 РФ)
mission 9 (existing 9, references фиксированы)
instrument 11 (было 10, +МСУ-ГСМ Арктики)
This commit is contained in:
@@ -95,26 +95,42 @@ curl -H "Authorization: Bearer $TOKEN" \
|
||||
]
|
||||
```
|
||||
|
||||
### `GET /api/v1/dictionaries/{name}/records`
|
||||
### `GET /api/v1/{name}/records`
|
||||
|
||||
> ⚠️ **БЕЗ префикса `/dictionaries/`!** Read-api сидит на `/api/v1/{name}/records`.
|
||||
> `/api/v1/dictionaries/...` — это admin-write контроллер для CRUD, у него нет
|
||||
> bulk-list эндпоинта, не пытайтесь его читать.
|
||||
|
||||
Активные записи на момент `at` (default: `now`). Параметры:
|
||||
|
||||
| параметр | тип | пример | примечание |
|
||||
|----------|-----------|------------------------------|------------------------------------------------|
|
||||
| `lang` | string | `ru`, `en` | flatten i18n полей до строки на этом языке |
|
||||
| `lang` | string | `ru-RU`, `en-US` | flatten i18n полей до строки на этом языке. Короткие формы (`ru`, `en`) тоже принимаются. |
|
||||
| `at` | ISO 8601 | `2026-05-04T12:00:00+03:00` | bitemporal query — вернёт активные на момент |
|
||||
| `as_scope` | string | `PUBLIC,INTERNAL` | для anonymous + `allowQueryScope=true` (legacy) |
|
||||
|
||||
```bash
|
||||
curl -H "Authorization: Bearer $TOKEN" \
|
||||
"https://ordinis.k8s.265.nstart.cloud/api/v1/dictionaries/spacecraft/records?lang=ru"
|
||||
"https://ordinis.k8s.265.nstart.cloud/api/v1/spacecraft/records?lang=ru-RU"
|
||||
```
|
||||
|
||||
### `GET /api/v1/dictionaries/{name}/records/{businessKey}`
|
||||
Без `?lang` ответ возвращает локализованные поля как объект:
|
||||
|
||||
```json
|
||||
"name": { "ru-RU": "Ресурс-П № 3", "en-US": "Resurs-P No.3" }
|
||||
```
|
||||
|
||||
С `?lang=ru-RU`:
|
||||
|
||||
```json
|
||||
"name": "Ресурс-П № 3"
|
||||
```
|
||||
|
||||
### `GET /api/v1/{name}/records/{businessKey}`
|
||||
|
||||
Одна запись. Параметры те же.
|
||||
|
||||
### `GET /api/v1/dictionaries/{name}/records/{businessKey}/history`
|
||||
### `GET /api/v1/{name}/records/{businessKey}/history`
|
||||
|
||||
Все версии записи (включая закрытые). Используется UI-историей, для consumer'ов
|
||||
обычно не нужно.
|
||||
|
||||
Reference in New Issue
Block a user