Новое Распределяем каналы MAX по категориям и территориям. Читать новость

Выгрузили записи через API, отдали на фронт — а там в списке висят черновики и статья, запланированная на пятницу. Клиент видит то, что видеть не должен.



Причина простая. API отдаёт всё: и опубликованное, и черновики, и запланированное. Это не баг.

API — это управление, а не витрина. Он показывает содержимое справочника целиком, потому что иначе им нельзя было бы управлять.

Витрину вы просите отдельно: параметр published=1 возвращает ровно то, что видит посетитель сайта.

Порядок действий, когда делаете публичную выдачу:

1. Смотрите перечень справочников: GET /api/v1/lists/. Оттуда берёте id — он подставляется во все остальные адреса.
2. Смотрите поля: GET /api/v1/lists/4/fields/. Делать это стоит до первой записи, писать можно только в объявленные поля.
3. Запрашиваете записи с published=1, limit и offset.

Вторая ловушка там же. Запись с датой публикации в будущем не показывается на сайте, пока не наступит время, но часы считаются по UTC, а не по местному поясу. Разница вылезает как раз на записях, поставленных «на сегодня вечером»: у вас уже вечер, а по UTC ещё нет.

И про постраничку. В ответе есть count — это сколько записей всего, а не сколько пришло в этой пачке. По нему и считаете страницы. Больше 500 за раз не отдаётся, по умолчанию limit 50.

Чтобы пройти справочник целиком — цикл с limit=500 и увеличением offset, выход по пустому records.

#wacis #api #вебразработка
Просмотры: 2
Открыть в MAX Сообщить о неточности

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти