Выгрузили записи через 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