Changes between Version 1 and Version 2 of Api


Ignore:
Timestamp:
Aug 11, 2017, 10:04:29 PM (7 years ago)
Author:
alx
Comment:

Описаны форматы запросов POST.

Legend:

Unmodified
Added
Removed
Modified
  • Api

    v1 v2  
    2121Для отправки запроса серверу могут использоваться методы GET и POST. Предпочтительным является использование метода POST.
    2222
     23== Кодировка (набор символов) ==
     24
     25Текстовые строки, передаваемые в запросах и ответах API кодируются в UTF-8.
     26
    2327== Структура данных ==
    2428
     
    2731 `{"key1":value,"key2":value...}`
    2832
    29 При использовании метода GET JSON-объект передается серверу как значение параметра `json`, например:
     33При использовании метода GET JSON-объект передается серверу как значение параметра `json` (которое должно быть закодировано по правилам urlencode), например:
    3034
    31  `https://mc04.domain.org/api.php?json={"key":123,"key2":"labuda"}`
     35{{{
     36GET api.php?json=%7B%22key%22%3A123%2C%22key2%22%3A%22labuda%22%7D HTTP/1.1
     37Host: mc04.domain.org
    3238
    33 При использовании метода POST
     39}}}
     40
     41При использовании метода POST запрос может помещаться в тело HTTP-сообщения двумя способами:
     421. как значение параметра `json` (аналогично запросу GET), в этом случае поле Content-Type сообщения должно иметь значение `application/x-www-form-urlencoded`, и, соответственно, тело сообщения должно кодироваться по правилам urlencode. Пример запроса:
     43{{{
     44POST /api.php HTTP/1.1
     45Host: mc04.domain.org
     46Content-Type: application/x-www-form-urlencoded
     47Content-Length: xxx
     48
     49json=%7B%22key%22%3A%22value%22%7D
     50}}}
     511. как "чистый" json-объект, в этом случае никакого дополнительного кодирования не используется, поле Content-Type в этом случае должно иметь значение `application/json`. Пример запроса:
     52{{{
     53POST /api.php HTTP/1.1
     54Host: mc04.domain.org
     55Content-Type: application/json
     56Content-Length: xxx
     57
     58{"key":"value"}
     59}}}
     60
     61Предпочтительным является второй вариант, однако следует учитывать, что его поддержка появилась в аппаратуре MC04-DSL-3U лишь начиная ревизии пакета sw r1543, в более ранних ревизиях поддерживается только первый вариант, поэтому для поддержки более ранних версий аппаратуры при разраотке клиента рекомендуется предусмотреть возможность fallback к первому варианту запросов.