Перейти к содержанию

Протокол

Оглавление

Схема классов

/svg/protos/key/keyapis/banner/v1/keyapis_banner_banner_v1.proto.svg

keyapis/banner/v1/keyapis_banner_banner_v1.proto

Сервис реализует функционал управления баннерами. Используются как источник Критичнх уведомления, White label компаний и объявления рекламных акций

BannerService

Сервис управления баннерами

Название метода Описание Тип запроса Тип ответа
PostBanner Метод сохранения баннера. Поддерживает создание и обновление. Метод доступен для: admin, manager, service keyapis.banner.v1.PostBannerRequest keyapis.banner.v1.PostBannerResponse
GetBanner Метод получения баннера. Метод доступен для: admin, manager, service keyapis.banner.v1.GetBannerRequest keyapis.banner.v1.GetBannerResponse
GetBannerLite Метод получения упрощённого баннера. Не требует авторизации keyapis.banner.v1.GetBannerLiteRequest keyapis.banner.v1.GetBannerLiteResponse
GetBannerList Метод получения списка баннеров. Метод доступен для: admin, manager, service keyapis.banner.v1.GetBannerListRequest keyapis.banner.v1.GetBannerListResponse stream
GetBannerLiteList Метод получения списка упрощённых баннеров. Возвращает всегда активные баннеры. По умолчанию возвращает первые 20 баннеров осортированных по приоритету, затем по дате начала акции(от самых важных к не важным, затем от самых новых акций к самым старым). Если запрос выполнен хотя бы без одного изпризнака приложения возвращает пустой список. Если запрос выполнен без признаков пользователя метод возвращает пустой список. Не требует авторизации keyapis.banner.v1.GetBannerLiteListRequest keyapis.banner.v1.GetBannerLiteListResponse stream
GetBannerCount Метод получения количества баннеров. Метод доступен для: admin, manager, service keyapis.banner.v1.GetBannerCountRequest keyapis.banner.v1.GetBannerCountResponse
PostBannerUploadImage Метод загрузки картинки баннера. Метод доступен для: admin, manager, service keyapis.banner.v1.PostBannerUploadImageRequest keyapis.banner.v1.PostBannerUploadImageResponse

Баннер.

Описание модели

Поле Описание Тип Признак
id Идентификатор. Если не передан создаётся сервером. # Тип: Guid string
type Тип баннера. Обязательное keyapis.banner.v1.Banner.Type REQUIRED
priority Приоритет. Обязательное. # Диапазон: 1..255 int32 REQUIRED
priority_type Тип приоритета. # Поле вычисляется в коде приложения keyapis.banner.v1.Banner.PriorityType OUTPUT_ONLY
title Название. Обязательное. Обычно это название рекламной компании. Не отображается пользователям. # Диапазон: 3..256 string REQUIRED
header Заголовок. # Диапазон: 3..64 google.protobuf.StringValue
header_color Цвет текста заголовка. Все цвета должны быть в формате hex #RRGGBBAA. Пример: #7e00c380. # Диапазон: 9..9. # Паттерн: /^#[0-9a-fA-F]{8}$/ google.protobuf.StringValue
subtitle Подзаголовок. # Диапазон: 3..256 google.protobuf.StringValue
subtitle_color Цвет текста подзаголовка. Все цвета должны быть в формате hex #RRGGBBAA. Пример: #7e00c380. # Диапазон: 9..9. # Паттерн: /^#[0-9a-fA-F]{8}$/ google.protobuf.StringValue
background_color Цвет заднего плана(подложки). Отрисовывается до загрузки картинки и градиента. Все цвета должны быть в формате hex #RRGGBBAA. Пример: #7e00c380. # Диапазон: 9..9. # Паттерн: /^#[0-9a-fA-F]{8}$/ google.protobuf.StringValue
background_gradient Градиент keyapis.banner.v1.Banner.Gradient
repeat_after_days Количество дней через которое можно повторно показать баннер. Если null, то закрыть нельзя, баннер повторно выводится каждый раз. # Диапазон: 0..366 google.protobuf.Int32Value
show_start_at Дата начала показа. Обязательное. Бессрочно если значение 2000-01-01. # Тип: DateOnly. # Диапазон: 730119..1095362 google.protobuf.Timestamp REQUIRED
show_ended_at Дата конца показа. Обязательное. Бессрочно если значение 3000-01-01. # Тип: DateOnly. # Диапазон: 730119..1095362 google.protobuf.Timestamp REQUIRED
status_type Статус баннера. # Поле вычисляется в коде приложения keyapis.banner.v1.Banner.StatusType OUTPUT_ONLY
images Картинки. # Диапазон: 0..20 repeated keyapis.banner.v1.Banner.Image
links Ссылки для переходов. # Диапазон: 0..100 repeated keyapis.banner.v1.Banner.Link
user_tags Список тегов пользователей. Обязательное. Описывает кто может видеть баннер. Тэг - максимум 5 символов, значение - максимум 19 символов, количество сегментов - максимум 10. # Диапазон: 1..100. # Паттерн: /^[A-Z-]{1,5}[0-9A-Z-]{1,19}(?:.[A-Z-]{1,5}[0-9A-Z-]{1,19}){0,9}$/ repeated string REQUIRED
app_tags Список тегов приложений. Обязательное. Описывает какие клиенты могут видеть баннер. Тэг - максимум 5 символов, значение - максимум 19 символов, количество сегментов - максимум 10. # Диапазон: 1..20. # Паттерн: /^[A-Z-]{1,5}[0-9A-Z-]{1,19}(?:.[A-Z-]{1,5}[0-9A-Z-]{1,19}){0,9}$/ repeated string REQUIRED
created_at Дата создания. # Тип: DateTime google.protobuf.Timestamp OUTPUT_ONLY
changed_at Дата последнего изменения. Заполняется и обновляется сервером. Заполняется при создании и изменении. Является версией объекта. # Тип: DateTime google.protobuf.Timestamp OUTPUT_ONLY

Banner.Gradient

Градиент

Поле Описание Тип Признак
linear Линейный градиент optional keyapis.banner.v1.Banner.Gradient.Linear

Banner.Gradient.Linear

Линейный градиент

Поле Описание Тип Признак
angle Угол направления линейного градиента в градусах. # Диапазон: 0..360 float
points Точки градиента. Обязательное. # Диапазон: 2..20 repeated keyapis.banner.v1.Banner.Gradient.Linear.Point REQUIRED

Banner.Gradient.Linear.Point

Точка

Поле Описание Тип Признак
color Цвет линейного градиента. Обязательное. Отрисовывается до загрузки картинки и градиента. Все цвета должны быть в формате hex #RRGGBBAA. Пример: #7e00c380. # Диапазон: 9..9. # Паттерн: /^#[0-9a-fA-F]{8}$/ string REQUIRED
stop Стоп линейного градиента. Записывается в процентах. # Диапазон: 0..100 float

Banner.Image

Объект картинки

Поле Описание Тип Признак
type Тип картинки. Обязательное keyapis.banner.v1.Banner.Image.Type REQUIRED
url Значение ссылки на картинку. Обязательное. # Диапазон: 12..512 string REQUIRED

Ссылка

Поле Описание Тип Признак
platform_type Тип платформы. Обязательное keyapis.banner.v1.Banner.PlatformType REQUIRED
type Тип ссылки. Обязательное keyapis.banner.v1.Banner.Link.Type REQUIRED
url Значение ссылки для перехода. Обязательное. # Диапазон: 12..512 string REQUIRED
packages Список пакетов. Если пусто попытка перехода осуществляется безусловно. Если заполнено, то переход осуществляется только в случае если хоть один пакет есть на устройстве, иначе обработка переходит к следующей ссылке. # Диапазон: 0..20 repeated string

Banner.SavingError

Ошибка сохранения. Эти проверки выполняются при работе с базой данных и сторонними сервисами

Поле Описание Тип Признак
conflict Конфликт версий optional keyapis.banner.v1.Banner.SavingError.Conflict

Banner.SavingError.Conflict

Конфликт версий. Причины: - В базе хранится другая версия строки, значения changed_at отличаются

BannerFilter

Фильтр баннеров

Поле Описание Тип Признак
text По тексту. Если значение не передано то поиск по нему не производится. # Диапазон: 3..64. # Поиск производится по полям: # - Название; # - Заголовок; # - Подзаголовок; # - Список тегов пользователей; # - Список тегов приложений google.protobuf.StringValue
types По типам баннеров repeated keyapis.banner.v1.Banner.Type
begin_priority От приоритета включительно (больше или равно) google.protobuf.Int32Value
end_priority До приоритета (меньше) google.protobuf.Int32Value
priority_types По типам приоритетов. Переписывает значения фильтров по приоритету. Если переданы все типы, то фильтр игнорируется(так как нужно вернуть всё) repeated keyapis.banner.v1.Banner.PriorityType
begin_show_start_at От даты начала показа включительно (больше или равно) google.protobuf.Timestamp
end_show_start_at До даты начала показа (меньше) google.protobuf.Timestamp
begin_show_ended_at От даты конца показа включительно (больше или равно) google.protobuf.Timestamp
end_show_ended_at До даты конца показа (меньше) google.protobuf.Timestamp
status_types По статусам баннеров. Переписывает значения фильтров по датам. Если переданы все типы, то фильтр игнорируется(так как нужно вернуть всё) repeated keyapis.banner.v1.Banner.StatusType
user_tags По пользовательским тегам. Тэг - максимум 5 символов, значение - максимум 19 символов, количество сегментов - максимум 10. # Диапазон: 0..20. # Паттерн: /^[A-Z-]{1,5}[0-9A-Z-]{1,19}(?:.[A-Z-]{1,5}[0-9A-Z-]{1,19}){0,9}$/ repeated string
app_tags По тегам приложений. Тэг - максимум 5 символов, значение - максимум 19 символов, количество сегментов - максимум 10. # Диапазон: 0..20. # Паттерн: /^[A-Z-]{1,5}[0-9A-Z-]{1,19}(?:.[A-Z-]{1,5}[0-9A-Z-]{1,19}){0,9}$/ repeated string

BannerLite

Облегчённый баннер

Поле Описание Тип Признак
id Идентификатор. # Тип: Guid string
repeat_after_days Количество дней через которое можно повторно показать баннер. Если Значение не указано то повторного показа баннера не будет google.protobuf.Int32Value
images Картинки repeated keyapis.banner.v1.BannerLite.ImageLite
links Ссылки для переходов. Возвращаются отфильтрованные по платформе repeated keyapis.banner.v1.BannerLite.LinkLite

BannerLite.ImageLite

Упрощённый объект картинки

Поле Описание Тип Признак
type Тип картинки. Обязательное keyapis.banner.v1.Banner.Image.Type REQUIRED
url Значение ссылки на картинку. Обязательное string REQUIRED

BannerLite.LinkLite

Упрощённая ссылка

Поле Описание Тип Признак
type Тип ссылки. Обязательное keyapis.banner.v1.Banner.Link.Type REQUIRED
url Значение ссылки. Обязательное string REQUIRED
packages Список пакетов. Если пусто попытка перехода осуществляется безусловно. Если заполнено, то переход осуществляется только в случае если хоть один пакет есть на устройстве иначе обработка переходит к следующей ссылке repeated string
platform_type Тип платформы. Обязательное keyapis.banner.v1.Banner.PlatformType REQUIRED

BannerLiteFilter

Упрощённый фильтр по баннерам

Поле Описание Тип Признак
types По типам баннеров repeated keyapis.banner.v1.Banner.Type
app_name Название приложения. # Диапазон: 1..19. # Паттерн: /^[0-9A-Z-]{1,19}$/ google.protobuf.StringValue
platform_type Тип платформы keyapis.banner.v1.Banner.PlatformType
version Версия приложения. # Диапазон: 1..19. # Паттерн: /^[0-9A-Z-]{1,19}$/ google.protobuf.StringValue
user_tags По тегам пользователя. Тэг - максимум 5 символов, значение - максимум 19 символов, количество сегментов - максимум 10. # Диапазон: 1..20. # Паттерн: /^[A-Z-]{1,5}[0-9A-Z-]{1,19}(?:.[A-Z-]{1,5}[0-9A-Z-]{1,19}){0,9}$/ repeated string

BannerPaging

Пагинация баннеров

Поле Описание Тип Признак
order_by_type Тип значения сортировки. Если значение не передано, то будет взято значение по умолчанию. # По умолчанию: CHANGED_AT keyapis.banner.v1.BannerPaging.OrderByType
direction_type Тип направления сортировки. # По умолчанию: DESC keyapis.banner.v1.BannerPaging.DirectionType
limit Количество записей на страницу. Если значение 0 (не передано), то будет взято значение по умолчанию. # Диапазон: 0..100. # По умолчанию: 20 int32
offset Сдвиг. # Диапазон: 0..2147483647 int32

GetBannerCountRequest

Запрос получения количества баннеров

Поле Описание Тип Признак
filter Фильтр keyapis.banner.v1.BannerFilter

GetBannerCountResponse

Ответ на запрос получения количества баннеров

Поле Описание Тип Признак
data Всего баннеров optional int32
error Ошибка optional keyapis.banner.v1.GetBannerCountResponse.Error

GetBannerCountResponse.Error

Ошибка запроса получения количества баннеров

Поле Описание Тип Признак
validation Ошибка валидации optional keyapis.banner.v1.ValidationError

GetBannerListRequest

Запрос получения списка баннеров

Поле Описание Тип Признак
filter Фильтр keyapis.banner.v1.BannerFilter
paging Пагинация optional keyapis.banner.v1.BannerPaging

GetBannerListResponse

Ответ на запрос получения списка баннеров

Поле Описание Тип Признак
data Баннер optional keyapis.banner.v1.Banner
error Ошибка optional keyapis.banner.v1.GetBannerListResponse.Error

GetBannerListResponse.Error

Ошибка запроса получения списка баннеров

Поле Описание Тип Признак
validation Ошибка валидации optional keyapis.banner.v1.ValidationError

GetBannerLiteListRequest

Запрос получения списка упрощённого баннеров

Поле Описание Тип Признак
filter Упрощённый фильтр keyapis.banner.v1.BannerLiteFilter
is_link_filter_disabled Признак отключения фильтрации по типу платформы bool

GetBannerLiteListResponse

Ответ на запрос получения списка упрощённых баннеров

Поле Описание Тип Признак
data Упрощённый баннер optional keyapis.banner.v1.BannerLite
error Ошибка optional keyapis.banner.v1.GetBannerLiteListResponse.Error

GetBannerLiteListResponse.Error

Ошибка запроса получения списка баннеров

Поле Описание Тип Признак
validation Ошибка валидации optional keyapis.banner.v1.ValidationError

GetBannerLiteRequest

Запрос получения упрощённого баннера

Поле Описание Тип Признак
id Идентификатор баннера. # Тип: Guid string REQUIRED

GetBannerLiteResponse

Ответ на запрос получения упрощённого баннера

Поле Описание Тип Признак
data Упрощённый баннер optional keyapis.banner.v1.BannerLite
error Ошибка optional keyapis.banner.v1.GetBannerLiteResponse.Error

GetBannerLiteResponse.Error

Ошибка запроса получения упрощённого баннера

Поле Описание Тип Признак
validation Ошибка валидации optional keyapis.banner.v1.ValidationError

GetBannerRequest

Запрос получения баннера

Поле Описание Тип Признак
id Идентификатор баннера. # Тип: Guid string REQUIRED

GetBannerResponse

Ответ на запрос получения баннера

Поле Описание Тип Признак
data Баннер optional keyapis.banner.v1.Banner
error Ошибка optional keyapis.banner.v1.GetBannerResponse.Error

GetBannerResponse.Error

Ошибка запроса получения баннера

Поле Описание Тип Признак
validation Ошибка валидации optional keyapis.banner.v1.ValidationError

PostBannerRequest

Запрос сохранения баннера

Поле Описание Тип Признак
data Баннер keyapis.banner.v1.Banner REQUIRED

PostBannerResponse

Ответ на запрос сохранения баннера

Поле Описание Тип Признак
data Баннер optional keyapis.banner.v1.Banner
error Ошибка optional keyapis.banner.v1.PostBannerResponse.Error

PostBannerResponse.Error

Ошибка запроса сохранения баннера

Поле Описание Тип Признак
validation Ошибка валидации optional keyapis.banner.v1.ValidationError
saving Ошибка сохранения optional keyapis.banner.v1.Banner.SavingError

PostBannerUploadImageRequest

Запрос загрузки картинки баннера

Поле Описание Тип Признак
banner_id Идентификатор баннера. Используется для складывания картинок баннера в папку баннера в бакете. Название картинки в папке создаётся из случайного Guid. # Тип: Guid string REQUIRED
upload_image Загружаемая картинка keyapis.banner.v1.UploadImage REQUIRED

PostBannerUploadImageResponse

Ответ на запрос загрузки картинки баннера

Поле Описание Тип Признак
data Ссылка на баннер на imageproxy cdn сервер. Общедоступна в интернете optional string
error Ошибка optional keyapis.banner.v1.PostBannerUploadImageResponse.Error

PostBannerUploadImageResponse.Error

Ошибка запроса загрузки картинки баннера

Поле Описание Тип Признак
validation Ошибка валидации optional keyapis.banner.v1.ValidationError

UploadImage

Объект загружаемой картинки

Поле Описание Тип Признак
base64 Картинка в формате инлайн base64. Обязательное. Пример: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA...". # Паттерн: /^data:\s*image\/(png jpeg jpg);\s*base64/

ValidationError

Ошибки валидации. Эти проверки выполняются до обращения в базу данных

Поле Описание Тип Признак
path Путь к полю в формате наименования прото string REQUIRED
message Валидационное сообщение string REQUIRED

Banner.Image.Type

Справочник типов картинок.

Тип: byte

Номер Тип Название
0 TYPE_UNKNOWN Значение не указано
1 PORTRAIT Пререндеренный баннер в портретном режиме. В портретном режиме ширина меньше или равна высоте. Представление характерно для телефонов. Может содержать дополнительные параметры запроса в ссылке(https://docs.imgproxy.net/generating_the_url?id=processing-options). После загрузки изображения отрисовывается поверх цвета и градиента. Если ссылки нет то нужно использовать ссылку из ландшафтного режима
2 LANDSCAPE Пререндеренный баннер в ландшафтном режиме. В ландшафтном режиме ширина больше высоты. Представление характерно для планшетов и декстопа. Может содержать дополнительные параметры запроса в ссылке(https://docs.imgproxy.net/generating_the_url?id=processing-options). После загрузки изображения отрисовывается поверх цвета и градиента. Если ссылки нет то нужно использовать ссылку из портретного режима
3 ICON Иконка. Может содержать дополнительные параметры запроса в ссылке(https://docs.imgproxy.net/generating_the_url?id=processing-options). После загрузки изображения отрисовывается поверх цвета и градиента

Banner.Link.Type

Справочник типов ссылок.

Тип: byte

Номер Тип Название
0 TYPE_UNKNOWN Значение не указано
1 INTERNAL_APP Ссылка для перехода на раздел текущего приложения
2 EXTERNAL_APP Ссылка для перехода на стороннее приложение
3 WEB_VIEW Ссылка для перехода на веб-вью внутренних (своих) приложений. В окне отсутствует адресаная строка. Для iOS используется WKWebView, для Android используется WebView
4 WEB_BROWSER Ссылка для перехода на веб-браузер
5 EXTERNAL_WEB_VIEW Ссылка для перехода на веб-вью внешних (партнёрских) приложений. В окне присутствует адресаная строка. Для iOS используется SFSafariViewController, для Android используется ChromeCustomTabs

Banner.PlatformType

Справочник платформ.

Тип: byte

Номер Тип Название
0 PLATFORM_TYPE_UNKNOWN Значение не указано
1 IOS Платформа iOS. Приложение размещается в App Store
2 ANDROID Платформа Android. Приложение размещается в Google Play, App Gallery или прочих сторах
3 WEB Платформа Web. Приложение размещается по интернет адресу

Banner.PriorityType

Справочник типов приоритетов.

Тип: byte

Номер Тип Название
0 PRIORITY_TYPE_UNKNOWN Значение не указано
1 NORMAL Обычный. Приоритет 31. Вычисляется в логике приложения как priority меньше 64. Извлекаются из базы по фильтру end_priority = 64
2 WHITE_LABEL Вайт-лейбл. Приоритет 127. Вычисляется в логике приложения как priority больше или равно 64 и priority меньше 160. Извлекаются из базы по фильтру begin_priority = 64 и end_priority = 160
3 CRITICAL Критикл. Приоритет 191. Вычисляется в логике приложения как priority больше или равно 160. Извлекаются из базы по фильтру begin_priority = 160

Banner.StatusType

Справочник статусов баннеров.

Тип: byte

Номер Тип Название
0 STATUS_TYPE_UNKNOWN Значение не указано
1 DEFERRED Отложен. Вычисляется в логике приложения как сurr_date меньше show_start_at. Извлекаются из базы по фильтру end_show_start_at = сurr_date
2 ACTIVE Активен. Вычисляется в логике приложения как сurr_date больше или равно show_start_at и сurr_date меньше show_ended_at. Извлекаются из базы по фильтру begin_show_start_at = сurr_date и end_show_ended_at = сurr_date
3 EXPIRED Истёк. Вычисляется в логике приложения как сurr_date больше или равно show_ended_at. Извлекаются из базы по фильтру begin_show_ended_at = сurr_date

Banner.Type

Справочник типов баннеров.

Тип: byte

Номер Тип Название
0 TYPE_UNKNOWN Значение не указано
1 STANDARD Стандартный баннер

BannerPaging.DirectionType

Справочник типов направлений сортировки.

Тип: byte

Номер Тип Название
0 DIRECTION_TYPE_UNKNOWN Значение не указано
1 DESC От большего к меньшему
2 ASC От меньшего к большему

BannerPaging.OrderByType

Справочник типов значений сортировки.

Тип: byte

Номер Тип Название
0 ORDER_BY_TYPE_UNKNOWN Значение не указано
1 CHANGED_AT Дата последнего изменения
2 PRIORITY_THEN_SHOW_START_AT По приоритету, затем по дате начала показа
3 CREATED_AT Дата создания
4 SHOW_START_AT Дата начала показа
5 SHOW_ENDED_AT Дата конца показа
6 RANK По рангу для поиска по тексту. Применяется когда передано поле для поиска по тексту. В случае если текстовое поле не передано, применяется значение по умолчанию

Скалярные типы значений

.proto Type Примечание Python Go Ruby C# C++ Java PHP
double float float64 Float double double double float
float float float32 Float float float float float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int int32 Bignum or Fixnum (as required) int int32 int integer
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int/long int64 Bignum long int64 long integer/string
uint32 Uses variable-length encoding. int/long uint32 Bignum or Fixnum (as required) uint uint32 int integer
uint64 Uses variable-length encoding. int/long uint64 Bignum or Fixnum (as required) ulong uint64 long integer/string
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int int32 Bignum or Fixnum (as required) int int32 int integer
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int/long int64 Bignum long int64 long integer/string
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. int uint32 Bignum or Fixnum (as required) uint uint32 int integer
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. int/long uint64 Bignum ulong uint64 long integer/string
sfixed32 Always four bytes. int int32 Bignum or Fixnum (as required) int int32 int integer
sfixed64 Always eight bytes. int/long int64 Bignum long int64 long integer/string
bool boolean bool TrueClass/FalseClass bool bool boolean boolean
string A string must always contain UTF-8 encoded or 7-bit ASCII text. str/unicode string String (UTF-8) string string String string
bytes May contain any arbitrary sequence of bytes. str []byte String (ASCII-8BIT) ByteString string ByteString string