Общая информация

Обратите внимание!

В целях обратной совместимости API поддерживает запросы по XML. Запрос должен строится по подобию JSON запросов, описанных на соответствующих страницах.

Пример для запроса calculateprice:

        
<calculateprice>
    <auth login="test" pass="test"/>
    <town>Москва</town>
    <address>чертановская 2</address>
    <mode>4</mode>
    <type>3</type>
    <mass>22</mass>
</calculateprice>
    
    

Тот же запрос в формате JSON:

        
{
    "calculateprice":{
        "auth":{
            "attributes":{
                "login":"test",
                "pass":"test"
             },
            "value":false
        },
        "town":{
            "value":"Москва"
        },
        "address":{
            "value":"чертановская 2"
        },
        "mode":{
            "value":4
        },
        "type":{
            "value":3
        },
        "mass":{
            "value":22
        }
    }
}
    
    

Все запросы к API делаются к хосту, расположенному по адресу https://*.postsrvs.ru/api2/
где * - имя вашей копии PostService (например "test")

Контейнер с телом запроса передается в формате JSON, API так же отвечает в формате JSON.

Контейнер строится по иерархическому принципу, подобному xml. Каждый элемент, включая корневой, содержит в себе следующие сущности:

  1. необязательный массив attributes, в котором задаются атрибуты элемента;
  2. поле value, даже если значение не подразумевается, передается false;
  3. дочерние элементы, строящиеся по этим же принципам.
        
    'town' => [
        'value' => 'Moscow',
        'attributes' => [
            'code' => 1
        ]
    ],
        
    

Элемент town с атрибутом code = 1 и значением Moscow

        
        'contacts' => [
            'phone' => [
                'value' => false,
            ],
            'email' => [
                'value' => false
            ]
        ],
        
    

Элемент contacts с двумя дочерними элементами phone и email

Если дочерние элементы подразумевают несколько одинаковых по своей сущности элементов (например, позиции в заказе), то они передаются как нумерованные подмассивы

        
        'deliveryprice' => [
            'advprice' => [
                0 => [
                    'attributes' => [
                        'code' => '1',
                        'price' => '156'
                    ],
                    'value' => 'База'
                ],
                1 => [
                    'attributes' => [
                        'code' => '4',
                        'price' => '12'
                    ],
                    'value' => 'Доставка'
                    ],
                ]
            ]
        ];