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

Руководство по миграции с версии API v1 на v2


  • Версия v2 поддерживает все запросы, которые есть в версии v1
  • Новые запросы добавляются в v2 и не могут быть добавлены в v1
  • Изменения не затрагивающие формат запроса/ответа запроса, могут быть применены к v1. Изменения, в том числе затрагивающие формат запроса/ответа, выполняются только в v2.
  • Версия v1 перестанет быть доступной 31.01.2024


Endpoints

Изменились адреса к запросам. В адресе добавилось v2.

v1 v2
https://{host}/{resource}/{action} https://{host}/v2/{resource}/{action}


Типизация

Для булевых значений в json вместо 0|1 использовать false/true (без кавычек).

v1 v2
{ "active": 1 } { "active": true }


Стилизация json

В версии v1 стилизация не соблюдалась. В версии v2 - lowerCamelCase. Тем не менее, в версия v2, запросы парсятся без учета регистра (хоть совсем извращенные варианты MeTADatA), а ответы исключительно в lowerCamelCase.

v1 v2
{
  "Metadata": {
    "PageCount": 9,
    "PageSize": 25,
    "PageIndex": 0,
    "RowCount": 207
  },
  "Code": 0,
  "Message": "OK"
}
{
  "metadata": {
    "pageCount": 1,
    "pageSize": 207,
    "pageIndex": 0,
    "rowCount": 207
  },
  "code": 0,
  "message": "OK"
}


Формат запроса

Убрана излишняя вложенность в секцию Body.

v1 v2
{
    "Body":{
        "PageSize": 10,
        "CurrentPage": 20,
        "Sort": "idTerminal, date asc, amount desc",
        "Params":{
            "param1":"value1",
            "param2":"value2"
        }
    }
}
{
  "pageSize": 0,
  "currentPage": 0,
  "sort": "string",
  "params": {
    "param1": "value1",
    "param2": "value2"
  }
}


Формат ответа

  • Секция ResultData переименована в result.
  • Секция QueryData переименована в data.
  • Из секции QueryData убрана излишняя вложенность Rows. Табличные данные содержаться в массиве data.
v1 v2
{
    "Code": 0,
    "Message": "OK",
    "QueryData": [
        {
            "Rows": []
        }
    ],
    "Metadata": {
        "PageCount": 0,
        "PageSize": 0,
        "PageIndex": 0,
        "RowCount": 0
    },
    "ResultData": {
        "field1":"value1",
        "field2":"value2"
    }
}
{
  "code": 0,
  "message": "string",
  "data": [ ],
  "metadata": {
    "pageCount": 0,
    "pageSize": 0,
    "pageIndex": 0,
    "rowCount": 0
  },
  "result": {
    "field1": "value1",
    "field2": "value2"
  }
}


Исправление имени тегов в конкретных запросах

Ниже перечислены запросы с указанием тегов, которые были переименованы для получения стилизованного json.

Запрос Теги

/report/cashs

Журнал инкассаций

в ответе:

  • SN -> sn

/account/token

Авторизация по логину и паролю

в случае неуспеной авторизации, в ответе:

  • IsCaptchaNeedForNextLogin -> isCaptchaNeedForNextLogin