Управление страницами
С помощью этих методов вы можете создавать и обновлять статьи, новости, оферты и другие самостоятельные материалы.
Отправляйте запросы с вашего сервера и передавайте Bearer сотрудника в заголовке Authorization. После создания страница сразу станет доступна через API получения страниц с App Token.
Для первого запуска пройдите быстрый старт CMS: в нём вы создадите страницу и сразу проверите её на стороне сайта.
Подготовка
Перед началом подготовьте:
- ID приложения (
application_id); - Bearer сотрудника;
page_type_idизGET /api/page_types;- уникальный
slug, напримерgigma-shop-about.
slug должен быть уникален во всей базе. Добавляйте к нему префикс проекта или сайта.
Методы страниц не проверяют принадлежность переданных страницы, приложения, файлов и тегов проекту сотрудника. Используйте только ID, полученные из списков своего проекта, и не принимайте административные ID от пользователя без проверки.
Поле content содержит HTML. Очищайте его перед выводом пользователю.
Что можно сделать
- создать страницу —
POST /api/pages; - получить страницу для редактирования —
GET /api/pages/{id}; - обновить страницу —
PUT /api/pages/{id}; - удалить страницу —
DELETE /api/pages/{id}; - получить список для административного интерфейса —
GET /api/tables/pages; - посмотреть историю —
GET /api/pages/{page}/history; - получить доступные теги —
GET /api/page_tags.
Создать страницу
- Метод
- POST
- URL
https://api.gigma.ru/api/pages- Авторизация
- Bearer сотрудника
- Headers
Authorization: Bearer {token}, Content-Type: application/json- Успешный ответ
201
Чтобы создать страницу, передайте ID приложения, тип страницы, slug, заголовок и HTML-содержимое. Остальные поля можно добавить при необходимости.
После успешного запроса Gigma вернёт объект page. Сохраните page.id: он понадобится для получения, обновления и удаления страницы.
Параметры запроса
code(integer, необязательный) — числовой код, уникальный в проекте. Если не передать, Gigma создаст его автоматически.application_id(integer, обязательный) — ID приложения.avatar_id(integer, необязательный) — ID файла аватара илиnull.is_page(boolean, обязательный) — для страницы передайтеtrue.page_type_id(integer, обязательный) — ID типа изGET /api/page_types.slug(string, обязательный) — глобально уникальный идентификатор, до 255 символов.title(string, обязательный) — название, от 1 до 255 символов.meta_title(string, необязательный) — SEO-заголовок илиnull.preview_id(integer, необязательный) — ID файла превью илиnull.description(string, необязательный) — краткое описание илиnull.meta_description(string, необязательный) — SEO-описание илиnull.content(string, обязательный) — HTML-контент, минимум 1 символ.tags(integer[], необязательный) — ID тегов изGET /api/page_tags.
Пример запроса
{
"application_id": 23,
"avatar_id": 1,
"is_page": true,
"page_type_id": 1,
"slug": "gigma-shop-legal-offer",
"title": "Публичная оферта",
"meta_title": "Публичная оферта Gigma Shop",
"preview_id": 2066,
"description": "Условия использования сервиса",
"meta_description": "Условия покупки и использования сервиса",
"content": "<p>Текст оферты</p>",
"tags": [1]
} Ответ
{
"page": {
"id": 36,
"code": "10000000001",
"avatar": {
"id": 1,
"name": "logo.svg",
"type": {
"id": 1,
"name": "Документ",
"avatar": "https://api.gigma.ru/storage/uploads/default.svg",
"created_at": "2024-03-27T07:00:46.000000Z"
},
"path": "https://api.gigma.ru/storage/uploads/logo.svg",
"link": null,
"created_at": "2024-04-14T20:04:32.000000Z",
"updated_at": "2024-04-14T20:04:32.000000Z"
},
"is_page": true,
"views_count": null,
"type": {
"id": 1,
"name": "Страница",
"avatar": "https://api.gigma.ru/storage/uploads/default.svg",
"created_at": "2024-10-31T11:14:22.000000Z"
},
"creator": {
"id": 39,
"avatar": "https://api.gigma.ru/storage/uploads/user.jpg",
"first_name": "Василий",
"last_name": "Иванов",
"middle_name": "Батькович",
"name": "Иванов Василий"
},
"slug": "gigma-shop-legal-offer",
"title": "Публичная оферта",
"meta_title": "Публичная оферта Gigma Shop",
"preview": {
"id": 2066,
"name": "offer-cover.png",
"type": {
"id": 1,
"name": "Документ",
"avatar": "https://api.gigma.ru/storage/uploads/default.svg",
"created_at": "2024-03-27T07:00:46.000000Z"
},
"path": "https://api.gigma.ru/storage/uploads/offer-cover.png",
"link": null,
"created_at": "2024-04-14T20:04:32.000000Z",
"updated_at": "2024-04-14T20:04:32.000000Z"
},
"description": "Условия использования сервиса",
"meta_description": "Условия покупки и использования сервиса",
"content": "<p>Текст оферты</p>",
"application": {
"id": 23,
"name": "Gigma Shop",
"avatar": "https://api.gigma.ru/storage/uploads/default.svg",
"created_at": "2024-10-08T08:46:23.000000Z"
},
"tags": [
{
"id": 1,
"name": "Важное",
"avatar": "https://api.gigma.ru/storage/uploads/default.svg",
"created_at": "2024-11-14T14:01:51.000000Z"
}
],
"created_at": "2024-11-27T09:34:29.000000Z"
}
} Поле page.code хранится и возвращается строкой, но при создании и обновлении API принимает только числовое значение.
Ошибки
401— Bearer отсутствует или недействителен.422— обязательное поле отсутствует,slugилиcodeуже занят, связанный ID не найден либо данные не прошли валидацию.
Получить страницу
- Метод
- GET
- URL
https://api.gigma.ru/api/pages/{id}- Авторизация
- Bearer сотрудника
- Headers
Authorization: Bearer {token}- Успешный ответ
200
Чтобы открыть страницу для просмотра или редактирования, передайте её ID в адресе запроса. Используйте только ID страницы своего проекта.
Параметры пути
id(integer, обязательный) — ID страницы.
Пример запроса
GET /api/pages/36 HTTP/1.1
Host: api.gigma.ru
Authorization: Bearer <employee_token>
Accept: application/json Ответ
{
"page": {
"id": 36,
"code": "10000000001",
"avatar": null,
"is_page": true,
"views_count": 27,
"type": {
"id": 1,
"name": "Страница",
"avatar": "https://api.gigma.ru/storage/uploads/default.svg",
"created_at": "2024-10-31T11:14:22.000000Z"
},
"creator": {
"id": 39,
"avatar": "https://api.gigma.ru/storage/uploads/user.jpg",
"first_name": "Василий",
"last_name": "Иванов",
"middle_name": "Батькович",
"name": "Иванов Василий"
},
"slug": "gigma-shop-legal-offer",
"title": "Публичная оферта",
"meta_title": "Публичная оферта Gigma Shop",
"preview": {
"id": 2066,
"name": "offer-cover.png",
"type": {
"id": 1,
"name": "Документ",
"avatar": "https://api.gigma.ru/storage/uploads/default.svg",
"created_at": "2024-03-27T07:00:46.000000Z"
},
"path": "https://api.gigma.ru/storage/uploads/offer-cover.png",
"link": null,
"created_at": "2024-04-14T20:04:32.000000Z",
"updated_at": "2024-04-14T20:04:32.000000Z"
},
"description": "Условия использования сервиса",
"meta_description": "Условия покупки и использования сервиса",
"content": "<p>Текст оферты</p>",
"application": {
"id": 23,
"name": "Gigma Shop",
"avatar": "https://api.gigma.ru/storage/uploads/default.svg",
"created_at": "2024-10-08T08:46:23.000000Z"
},
"tags": [
{
"id": 1,
"name": "Важное",
"avatar": "https://api.gigma.ru/storage/uploads/default.svg",
"created_at": "2024-11-14T14:01:51.000000Z"
}
],
"created_at": "2024-11-27T09:34:29.000000Z"
}
} Поля ответа
page.id— ID страницы.page.code— числовой код в строковом формате илиnull.page.avatar— файл аватара илиnull.page.is_page— признак страницы.page.views_count— количество просмотров.page.type— тип страницы.page.creator— сотрудник, создавший страницу.page.slug— публичный идентификатор.page.title— название.page.meta_title— SEO-заголовок илиnull.page.preview— файл превью илиnull.page.description— краткое описание илиnull.page.meta_description— SEO-описание илиnull.page.content— HTML-контент.page.application— приложение страницы.page.tags— теги страницы.page.created_at— дата создания в ISO 8601.
Ошибки
401— Bearer отсутствует или недействителен.404— страница не найдена.
Обновить страницу
- Метод
- PUT
- URL
https://api.gigma.ru/api/pages/{id}- Авторизация
- Bearer сотрудника
- Headers
Authorization: Bearer {token}, Content-Type: application/json- Успешный ответ
200
Чтобы изменить страницу, передайте её ID в адресе и полный актуальный набор обязательных полей в теле запроса. Используйте только ID страницы и связанных объектов своего проекта.
Параметры пути
id(integer, обязательный) — ID страницы.
Параметры запроса
Те же поля, что и в POST /api/pages. Если вы меняете slug, новое значение также должно быть глобально уникальным.
Не передавайте текущий code при обычном обновлении. Передавайте поле только если меняете его на новый свободный числовой код.
Пример запроса
{
"application_id": 23,
"avatar_id": 1,
"is_page": true,
"page_type_id": 1,
"slug": "gigma-shop-legal-offer",
"title": "Публичная оферта — новая редакция",
"meta_title": "Публичная оферта Gigma Shop",
"preview_id": 2066,
"description": "Условия использования сервиса",
"meta_description": "Актуальные условия использования сервиса",
"content": "<p>Новая редакция оферты</p>",
"tags": [1]
} Ответ
{
"page": {
"id": 36,
"code": "10000000001",
"avatar": {
"id": 1,
"name": "logo.svg",
"type": {
"id": 1,
"name": "Документ",
"avatar": "https://api.gigma.ru/storage/uploads/default.svg",
"created_at": "2024-03-27T07:00:46.000000Z"
},
"path": "https://api.gigma.ru/storage/uploads/logo.svg",
"link": null,
"created_at": "2024-04-14T20:04:32.000000Z",
"updated_at": "2024-04-14T20:04:32.000000Z"
},
"is_page": true,
"views_count": 27,
"type": {
"id": 1,
"name": "Страница",
"avatar": "https://api.gigma.ru/storage/uploads/default.svg",
"created_at": "2024-10-31T11:14:22.000000Z"
},
"creator": {
"id": 39,
"avatar": "https://api.gigma.ru/storage/uploads/user.jpg",
"first_name": "Василий",
"last_name": "Иванов",
"middle_name": "Батькович",
"name": "Иванов Василий"
},
"slug": "gigma-shop-legal-offer",
"title": "Публичная оферта — новая редакция",
"meta_title": "Публичная оферта Gigma Shop",
"preview": {
"id": 2066,
"name": "offer-cover.png",
"type": {
"id": 1,
"name": "Документ",
"avatar": "https://api.gigma.ru/storage/uploads/default.svg",
"created_at": "2024-03-27T07:00:46.000000Z"
},
"path": "https://api.gigma.ru/storage/uploads/offer-cover.png",
"link": null,
"created_at": "2024-04-14T20:04:32.000000Z",
"updated_at": "2024-04-14T20:04:32.000000Z"
},
"description": "Условия использования сервиса",
"meta_description": "Актуальные условия использования сервиса",
"content": "<p>Новая редакция оферты</p>",
"application": {
"id": 23,
"name": "Gigma Shop",
"avatar": "https://api.gigma.ru/storage/uploads/default.svg",
"created_at": "2024-10-08T08:46:23.000000Z"
},
"tags": [
{
"id": 1,
"name": "Важное",
"avatar": "https://api.gigma.ru/storage/uploads/default.svg",
"created_at": "2024-11-14T14:01:51.000000Z"
}
],
"created_at": "2024-11-27T09:34:29.000000Z"
}
} Ошибки
401— Bearer отсутствует или недействителен.404— страница не найдена.422— обязательное поле отсутствует,slugили новыйcodeуже занят, связанный ID не найден либо данные не прошли валидацию.
Удалить страницу
- Метод
- DELETE
- URL
https://api.gigma.ru/api/pages/{id}- Авторизация
- Bearer сотрудника
- Headers
Authorization: Bearer {token}- Успешный ответ
200
Чтобы удалить страницу, передайте её ID в адресе запроса. Удаление необратимо, поэтому сначала уберите ссылки на страницу из меню, блоков и вашего сайта. Используйте только ID страницы своего проекта.
Параметры пути
id(integer, обязательный) — ID страницы.
Ответ
{
"message": "Page successfully destroyed"
} Ошибки
401— Bearer отсутствует или недействителен.404— страница не найдена.
Получить список страниц для таблицы
- Метод
- GET
- URL
https://api.gigma.ru/api/tables/pages- Авторизация
- Bearer сотрудника
- Headers
Authorization: Bearer {token}- Успешный ответ
200
Этот метод пригодится, если вы создаёте административный список страниц. Gigma вернёт конфигурацию столбцов, строки и данные пагинации. Список автоматически ограничен проектом сотрудника.
Параметры запроса
application_id(integer, необязательный) — фильтр по ID приложения.page_type_id(integer, необязательный) — ID типа страницы.order_by(string, необязательный) —date_asc,date_desc,popularity_ascилиpopularity_desc.query(string, необязательный) — поиск по заголовку, описанию и содержимому, минимум 3 символа.page(integer, необязательный) — номер страницы, по умолчанию1.per_page(integer, необязательный) — количество строк на странице, по умолчанию10.
Пример запроса
GET /api/tables/pages?application_id=23&page_type_id=1&query=оферта&page=1 HTTP/1.1
Host: api.gigma.ru
Authorization: Bearer <employee_token>
Accept: application/json Ответ
{
"columns": [
{
"id": 135,
"table_id": 17,
"order": 0,
"key": "title",
"has_icon": 1,
"text": "Название"
}
],
"contents": [
{
"id": 36,
"code": "10000000001",
"date": "27.11.2024",
"title": {
"icon": "https://api.gigma.ru/storage/uploads/default.svg",
"value": "Публичная оферта"
},
"type": {
"icon": "https://api.gigma.ru/storage/uploads/default.svg",
"value": "Страница"
},
"slug": "gigma-shop-legal-offer",
"creator": {
"icon": "https://api.gigma.ru/storage/uploads/user.jpg",
"value": "Иванов Василий",
"link": "/users/list-users/39"
},
"status": "Черновик"
}
],
"pagination": {
"total": 1,
"per_page": 10,
"current_page": 1,
"last_page": 1,
"from": 1,
"to": 1
}
} status — значение административной таблицы. Метод GET /api/pages/{id} не возвращает отдельный переключатель публикации, поэтому не используйте status как единственный источник видимости страницы.
Ошибки
401— Bearer отсутствует или недействителен.422— фильтр содержит неизвестный ID, неверную сортировку или слишком короткую поисковую строку.
Получить историю страницы
- Метод
- GET
- URL
https://api.gigma.ru/api/pages/{page}/history- Авторизация
- Bearer сотрудника
- Headers
Authorization: Bearer {token}- Успешный ответ
200
Чтобы получить журнал действий со страницей, передайте её ID в адресе запроса. Метод не проверяет принадлежность страницы проекту, поэтому используйте только ID из своего административного списка.
Параметры пути
page(integer, обязательный) — ID страницы.
Ответ
В ответ Gigma вернёт записи с полями id, icon, color, title, description и datetime.
Ошибки
401— Bearer отсутствует или недействителен.