LSR

Обработка ошибок

Все коды ошибок сопоставляются с соответстующими HTTP кодами статусов. На МП необходимо нормально обрабатывать следующие ошибки, которые могут возникнуть при вызове любого метода:

  • 304 - версия ресурса не изменилась
  • 400 - сервер обнаружил в запросе клиента синтаксическую ошибку (ошибка валидации)
  • 401 - Не авторизован
  • 404 - не найдено
  • 408 - истекло время ожидания ответа
  • 409 - запрос не может быть выполнен из-за конфликта с текущим состоянием целевого ресурса. Этот код используется в ситуациях, когда пользователь может разрешить конфликт и повторно отправить запрос
  • 500 - неизвестная ошибка

формат ошибок { code: Int, message: [ { property: String, constraints: String }] }

Auth
POST /auth/login
POST /auth/refresh-token
POST /auth/register
POST /auth/register/confirm
POST /auth/change-password/request
POST /auth/change-password/confirm
POST /auth/change-password
login
POST /auth/login

Authentication

Open

Авторизация

Request body

Object
login
string required

email или телефон

password
string required

пароль

Responses

200 OK
Body
Object
refresh auth session
POST /auth/refresh-token

Authentication

Open

Обновление сессии

Request body

Object
refreshToken
string required

Responses

200 OK
Body
Object
register
POST /auth/register

Authentication

Open

Регистрация

Request body

Object
phone
string required

телефон

firstName
string required

имя

lastName
string required

фамилия

patronymicName
string required

отчество

password
string required

пароль

Responses

200 OK
Body
Object
data
OTPSession required
confirm registration
POST /auth/register/confirm

Подтверждение регистрации

Request body

Object
sessionId
string required

id сессии, полученной на предыдущем шаге

code
string required

одноразовый код, полученный по смс

Responses

200 OK
Body
Object
request password change
POST /auth/change-password/request

Authentication

Open

Запрос на смену пароля

Request body

Object
phone
string required

телефон

Responses

200 OK
Body
Object
confirm password change
POST /auth/change-password/confirm

Подтверждение смены пароля

Request body

Object
sessionId
string required

id сессии, полученной на предыдущем шаге

code
string required

одноразовый код, полученный по смс

Responses

200 OK
Body
Object
change password
POST /auth/change-password

Authentication

Open

Смена пароля

Request body

Object
sessionId
string required

id сессии, полученной на предыдущем шаге

password
string required

пароль

Responses

200 OK
Body
Object
Categories
POST /categories
POST /categories/childs
POST /categories/filters
categories
POST /categories

Authentication

Open

1-й уровень категорий

Request body

Object
regionId
string required

id региона

Responses

200 OK
Body
Object
data
Object required
categories
Array of Category required
subcategories
POST /categories/childs

Authentication

Authorization

Подкатегории. В случае если передается авторизация - возвращает сохраненные пользователем фильтры.

Request body

Object
parentId
string required

id родительской категории

filters

Responses

200 OK
Body
Object
data
Object
categories
Array of Category required
filters
Array of ProductFilter required
userFilters
productsCount
integer required

общее количество товаров во всех категориях в выборке

product filters
POST /categories/filters

Authentication

Open

Доступные фильтры продуктов

Request body

Object
filters

фильтры продуктов, которые нужно применить к выборке

categoryId
string required

id категории

Responses

200 OK
Body
Object
data
Object
filters
Array of ProductFilter required

список доступных фильтров

unavailableFilterIds
Array of string

id фильтров, которые не будут влиять на выборку товаров

Products
POST /products
POST /products/info
products
POST /products

Authentication

Open

Список продуктов с возможностью поиска по строке

Request body

Object
regionId
string required

id региона

categoryId
string

id категории

search
string

строка поиска

sort

способ сортировки

filters

список фильтров, котоыре нужно применить к выборке

offset
integer required
count
integer required

Responses

200 OK
Body
Object
data
Object
products
Array of ProductShort
suggestedProducts
Array of ProductShort
suggestedCategories
Array of Category
total
integer
product info
POST /products/info

Полная инфа о продукте

Request body

Object
regionId
string required

id региона

productId
string required

id продукта

Responses

200 OK
Body
Object
data
Object
product
suggestions
Array of ProductShort
User product filters
POST /filters
POST /filters/create
POST /filters/update
POST /filters/delete
filters
POST /filters

Authentication

Authorization

Список фильтров пользователя

Responses

200 OK
Body
Object
data
create filter
POST /filters/create

Создать фильтр

Request body

Object
name
string

название фильтра

values

значения фильтров

Responses

200 OK
Body
Object
update filter
POST /filters/update

Authentication

Authorization

Изменить фильтр

Request body

Object
filterId
string required

id фильтра

name
string

название фильтра

values

значение фильтров

Responses

200 OK
Body
Object
delete filter
POST /filters/delete

Authentication

Authorization

Request body

Object
id
string required

id фильтра

Favorites
POST /favorites
POST /favorites/create
POST /favorites/remove
POST /favorites/ids
favorites
POST /favorites

Authentication

Authorization

Список избранного

Request body

Object
count
integer required
offset
integer required
sort

Responses

200 OK
Body
Object
data
Object
products
Array of ProductShort
total
integer
add to favorites
POST /favorites/create

Authentication

Authorization

Добавить в избранное

Request body

Object
productId
string required

id продукта

Responses

200 OK
Body
Object
data
Object
remove from favorites
POST /favorites/remove

Authentication

Authorization

Удалить из избранного

Request body

Object
productId
string required

id продукта

Responses

200 OK
Body
Object
data
Object
favorite products ids
POST /favorites/ids

Authentication

Authorization

Responses

200 OK
Body
Object
data
Object
ids
Array of string
Regions
POST /regions
regions
POST /regions

Authentication

Open

Список регионов

Responses

200 OK
Body
Object
data
Array of Region
User
POST /user
POST /user/contracts
POST /user/update
POST /user/cart
POST /user/delete
POST /user/question
user
POST /user

Authentication

Authorization

Информация об авторизованном пользователе

Responses

200 OK
Body
Object
data
user contracts
POST /user/contracts

Authentication

Authorization

Список договоров пользователя

Responses

200 OK
Body
Object
data
Array of Contract
update user
POST /user/update

Authentication

Authorization

Обновить пользователя

Request body

Object
firstName
string

имя

lastName
string

фамилия

patronymicName
string

отчество

cartId
string

id корзины пользователя

contractId
string

id договора

regionId
string

id региона

email
string

email

isDebugUser
boolean

если true, то текущий пользователь - тестировщик

simulateForeignRegion
boolean

показываает, нужно ли симулировать работу приложения вне России

Responses

200 OK
Body
Object
data
user cart
POST /user/cart

Authentication

Authorization

Текущая корзина юзера. Если корзины нет, то она автоматически создается

Responses

200 OK
Body
Object
data
delete user
POST /user/delete

Authentication

Authorization

Request body

Responses

200 OK
user question
POST /user/question

Authentication

Authorization

Обратная связь. Задать вопрос. Должен быть указан либо phone либо email

Responses

201 Created
Body
Object
phone
string
email
string
question
string required
Cart
POST /cart/add
POST /cart/remove
Add product to cart
POST /cart/add

Добавить продукт в корзину

Request body

Object
cartId
string required
productId
string required
measureUnitId
string required
quantity
integer required

Responses

200 OK
Body
Object
data
remove product from cart
POST /cart/remove

Authentication

Authorization

Удалить продукт из корзины

Request body

Object
cartId
string required
productId
string required

Responses

200 OK
Body
Object
data
Pickup points
POST /pickup-points
pickup points
POST /pickup-points

Authentication

Open

Список точек самовывоза

Request body

Object
regionId
string required

Responses

200 OK
Body
Object
data
Array of PickupPoint
Requests
POST /requests/create
POST /requests
POST /request/paymentTransaction
POST /requests/question
POST /requests/repeat
POST /requests/rate
create request
POST /requests/create

Authentication

Authorization

Создать заявку

Request body

Object
cartId
string required

id корзины

contractId
string

id контракта

pickupPointId
string

id точки самовывоза

deliveryAddress
string

адрес доставки

deliveryComment
string

комментарий к адресу доставки

Responses

200 OK
Body
Object
data
requests
POST /requests

Authentication

Authorization

Список заявок авторизованного пользователя

Request body

Object
statuses
Array of RequestStatus

фильтр по статусам

createdBy
Array of string

фильтр по создателю

sort
SortType required

способ сортировки

count
string required
offset
string required

Responses

200 OK
Body
Object
data
Object
requests
Array of Request required
total
integer required
create payment transaction
POST /request/paymentTransaction

Authentication

Authorization

Оплатить заявку. Реализация оплаты будет зависить от банковского эквайринга

create question for order
POST /requests/question

Authentication

Authorization

Задать вопрос по заявке. Должен быть указан либо phone либо email

Request body

Object
orderId
string required

id заказа

question
string required

текст вопроса

phone
string
email
string

Responses

200 OK
Body
Object
data
Object
repeat request
POST /requests/repeat

Authentication

Authorization

Повторить заявку

Request body

Object
requestId
string required

id заявки

Responses

200 OK
Body
Object
data
rate request
POST /requests/rate

Authentication

Authorization

Оценить заявку

Request body

Object
requestId
string required

id заявки

rating
integer required

оценка

comment
string

комментарий

Responses

200 OK
Body
Object
data
Transactions
POST /transactions
transactions
POST /transactions

Authentication

Authorization

Список транзакций пользователя

Request body

Object
sort

способ сортировки

offset
integer required
count
integer required

Responses

200 OK
Body
Object
data
Object
transactions
Array of Transaction required
total
integer required
Application configuration
POST /app-config
POST /strings
app config
POST /app-config

Authentication

Open

Конфигурационный файл

Request body

Object
lastSyncDate
integer

Responses

200 OK
Body
Object
data
strings
POST /strings

Authentication

Open

Request body

Object
lastSyncDate
integer required

время последнего обновления

Responses

200 OK
Body
Object
lastSyncDate
integer required

время последнего обновления

strings
Object

словарь строк

Example:
{"key1": "value1", "key2": "value2" }
Promotions
POST /promotions
POST /promotions/products
promotions
POST /promotions

Authentication

Open

Список акций

Responses

200 OK
Body
Object
data
Array of Promotion
products in promotion
POST /promotions/products

Список товаров в акции

Request body

Object
promotionId
string required

id акции

Responses

200 OK
Body
Object
data
Array of ProductShort
Notifications
POST /notifications/bind
POST /notifications/unbind
bind push token
POST /notifications/bind

Authentication

Authorization

Привязать пуш токен к пользователю

Request body

Object
token
string required

пуш токен

Responses

200 OK
Body
Object
unbind push token
POST /notifications/unbind

Authentication

Authorization

Отвязать пуш токен от пользователя

Request body

Object
token
string

пуш токен

Responses

200 OK
Body
Object
Models
AuthSession

Авторизационная сессия

Object
accessToken
string required

авторизационный токен, исопльзуется для подписи запросов

ttl
integer required

время жизни авторизационного токена

refreshToken
string required

токен для обновления авторизационного токена

refreshTTL
integer required

время жизни токена обьновления

OTPSession

Сессия для одноразового кода

Object
id
string required

id сессии

ttl
integer required

время жизни сессии

Category

Категория продукта

Object
id
string required

идентификатор

tile
string required

название

image
string

изображение

hasChilds
boolean required

есть ли у категории подкатегории

ProductShort

Краткая информация о продукте

Object
id
string required

идентификатор

title
string required

название

image
string

изображение

price
integer

стоимость, в копейках

measureUnit
string required

единица измерения

promotion

акция

ProductPromotion

Акция, примененная к продукту

Object
oldPrice
integer required

старая цена

endDate
string required

дата окончания акции

ProductFull

Полная информация по продукту

Object
id
string required

идентификатор

title
string required

название

description
string

описание

images
Array of string

список url-ов изображений

price
integer

стоимость, в копейках

promotion

акция, примененная к продукту

properties
Array of TitledValue

список характеристик продукта

measureUnit
MeasureUnit required
additionalMeasureUnits
Array of MeasureUnit

список единиц измерения

certificates
Array of TitledValue

список сертификатов

regionRestricions
string

региональные ограничения

Example:
Доставка осуществляется в пределах Санкт-Петербурга и Ленинградской области
measureRestrictions
string

ограничения по таре

Example:
Этот товар продается кратно поддонам
по 1.875 м3
preorderOnly
boolean

Флаг, показывающий что товар продается под заказ

TitledValue

Название и значение

Object
title
string required

название

value
string required

значение

MeasureUnit

Единица измерения

Object
id
string required

идентификатор

pluralTitle
string required

описание единицы измерения “one;some;many;all”

Example:
”штука;штуки;штук;штуки”, "поддон;поддона;поддонов;поддоны"
shortTitle
string required

Сокращенное название

Example:
шт.
count
integer required

Количество единиц в группе. Например если это поддон, вмещяющий 240 единиц, то count = 240. Если это базовая единица - это count = 1

ProductFilter

Фильтр продуктов

Object
id
string required

идентификаторв

title
string required

название

type

тип

values
Array of string required

значения

min
integer

минимальнео значение (для range)

max
integer

максимальное значение (для range)

fractionalCount
integer

число десятичных знаков

integerCount
integer

число целых знаков

SortType

Тип сортировки

Object
field
string required

поле для сортировки

direction
SortDirection required

способ упорядочивания

UserProductFilter

Фильтр пользователя

Object
id
string required

идентификаторв

name
string required

название

values
Array of ProductFilterValue required

значения фильтров

ProductFilterValue

Значение фильтра

Object
filterId
string required

идентификатор фильтра

values
Array of integer required

индексы выбранных значений

Contract

Договор

Object
id
string required

идентификатор

title
string required

название

number
string required

номер договора

Region

Регион

Object
id
string required

идентификатор

title
string required

название

User

Пользователь

Object
id
string required

идентификатор

phone
string required

телефон

email
string

email

firstName
string required

имя

lastName
string required

фамилия

patronymicName
string required

отчество

cartId
string required

id корзины

contractId
string

id договора

regionId
string

id региона

simulateForeignRegion
boolean

показываает, нужно ли симулировать работу приложения вне России

isDebugUser
boolean

если true, то текущий пользователь - тестировщик

Cart

Корзина

Object
id
string required

идентификатор

contractId
string

id договора

items
Array of CartItem required

список товаров в корзине

suggestions
Array of ProductShort

предлагаемые товары

totalPrice
integer required

итоговая стоимость, в копейках

CartItem

Товар в корзине

Object
id
string required

идентификатор

product
ProductShort required

продукт

quantity
integer required

количество

isAvailable
boolean required
isAvailableInRegion
boolean required
PickupPoint

Точка самовывоза

Object
id
string required

идентификатор

title
string required

название

address
string required

адрес

workingHours
string required

время работы

lat
number required

широта

lon
number required

долгота

Request

Заявка

Object
id
string required

идентификтаор

number
string required

номер заявки

createdAt
string required

дата создания

contractId
string required

id договора

regionId
string required

id региона

createdBy
string required

id создателя

items
Array of RequestItem required

список товаров в заявке

status
RequestStatus required

текущий статус

comment
string

комментарий к заявке

files
Array of TitledValue

список файлов

subRequests
Array of Request

подчиненные заявки

history

история смены статусов

RequestItem

Товар в заявке

Object
id
string required

идентификатор

quantity
integer required

количество

product
ProductShort required

продукт

shippingDate
string

optional

status

текущий статус

history
Array of RequestItemStatusChange required

история смены статусов

RequestStatusChange

Информация о смене статуса заявки

Object
createdAt
string required

дата создания

status
RequestStatus required

статус

RequestItemStatusChange

Информация о смене статуса отгрузки товара в заявке

Object
createdAt
string required

дата создания

status

статус

Transaction

Платежная операция

Object
id
string required

идентификатор

total
integer required

итоговая стоимость, в копейках

requestNumber
string required

номер заявки

date
string required

дата создания

cardNumer
string required

номер карты по которой прошла транзакция, ex: “*0891”

Promotion

Акция

Object
id
string required

идентификатор

title
string required

название

shortDescription
string

короткое описание

description
string

описание

image
string

изображение

AppConfig

Конфигураионный файл с общей информацией по приложению

Object
lastSyncDate
integer required

время последнего обновления

termsOfServiceURL
string required

условия исопльзования

privacyPolicyURL
string required

политика конфиденциальности

licenseAgreementURL
string required
fileFragmentSize
integer required

размер сегмента файла при загрузке и скачивании в Байтах

contacts
Array of ContactRegion required

список контактов, сгруппированных по регионам

passwordComplexity
string required

regexp дял пароля

regions
Array of Region required

список доступных регионов

ContactItem
Object
id
string required
title
string required
email
string required
phone
string required
hours
string required
lat
number required
lng
number required
ContactRegion
Object
id
string required
title
string required
contacts
Array of ContactItem required
StringItem
Object
Enumerations
ProductFilterType

Типа фильтров для продуктов

string
Enumeration:
checkbox
radiogroup
scrollbar
range
toggle
SortDirection

Направление сортировки

string
Enumeration:
asc
desc
RequestStatus

Статусы заявок

string
Enumeration:
created
processing
cancelled
waitingForPayment
payed
completed
RequestItemStatus

Статусы отгрузки товаров в заявке

string
Enumeration:
created
shipping
shipped
ProductSortField

Возможные поля сортировки продукта

string
Enumeration:
price
RequestSortField

Возможные поля сортировки заявки

string
Enumeration:
date
TransactionSortField

Возможные поля сортировки транзакций

string
Enumeration:
date