Доп. поля и новости v200.1.0
Каталог xfields, encode в строку DLE, запись в новость и фильтр xf[].
Доп. поля новости в DLE хранятся одной строкой в колонке xfields. API умеет: посмотреть каталог полей, собрать строку из JSON и отфильтровать новости по полю.
Создание новости без деталей xfields: posts-create. Поиск: posts-search.
Что нужно заранее
- Bearer — auth
- Права на
postи работу с/xfields/post/
1. Каталог полей
GET /api/v2/xfields/post/
Authorization: Bearer <access_token>scope бывает post или user. Одно поле: GET /xfields/post/{name}.
2. Собрать строку: encode
curl -sS -X POST 'https://ВАШ_САЙТ/api/v2/xfields/post/encode' \
-H 'Authorization: Bearer <access_token>' \
-H 'Content-Type: application/json' \
-d '{"fields":{"linked_data":"значение","note":"a|b"}}'Ответ: { "raw": "…", "parsed": { … }, "scope": "post" }. Поле raw кладите в новость.
3. Записать в новость
Как в posts-create, добавьте "xfields": "<raw из encode>" в тело POST /post/ или в PUT /table/post/{id}.
4. Найти по доп. полю
GET /api/v2/post/?xf[linked_data]=значение
Authorization: Bearer <access_token>Подробнее про остальные фильтры: posts-search.
5. Прочитать разобранные поля
GET /post/{id} часто отдаёт xfields как { "raw": "…", "parsed": { … } } и иногда xfields_schema.
Через SDK
DcApi::news()->withXfield('foo', 'bar')->create() и DcApi::modifyXfield('post') — SDK.