WhoCPA API документация

  Внимание: API находится в активной разработке. Вскоре он будет дополнен множеством новых методов, однако подлежит изменению в существующих методах . Мы сообщим вам о важных изменениях, оставайтесь на связи

Начало работы

В этом документе описывается интерфейс программирования службы WhoCPA (далее «API»). Через API внешние приложения добавляют и редактируют предложения, цели, рекламные материалы, получают списки предложений, потенциальных клиентов и все виды статистики.

Предполагается, что читатель знает терминологию и понимает принципы сетей CPA. Эта информация содержится в помощь пользователю.

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

API предоставляет различные уровни доступа к системным объектам; эти уровни соответствуют типам счетов. Без авторизации доступен уровень «Гость», с помощью которого можно получить информацию, также доступную без регистрации на сайте: список доступных предложений, их цели, новости и т. Д. Уровни «Веб-мастер» и «Рекламодатель» соответствуют на функционал подобных аккаунтов на сайте.

Доступ

Публичная информация, такая как список предложений, их цели, категории и т. Д. Доступна без разрешения.

Чтобы использовать функциональность вашей учетной записи, с каждым запросом вы должны передавать параметр api_key , который можно получить на странице профиля или вверху этой страницы.

REST

API построен по принципу REST. Чтобы получить доступ к любому ресурсу, просто сделайте обычный HTTP-запрос.

В общем, URL ресурса выглядит так: /api/<resource_name>, Могут быть методы взаимодействия с ресурсом

Метод Запрос Встреча
list GET /api/resource/

Получить список объектов по заданным параметрам. Он используется в основном для полной выгрузки информации, а также может быть использован для поиска.

Список объектов можно найти в поле ответа objects .

Чаще всего метод list не возвращает сразу все найденные объекты, вместо этого ответ разбивается на несколько частей, другими словами, включается механизм пагинации.

Если для метода list этого ресурса используется разбивка на страницы, в ответе сервера, помимо поля objects , появляются еще три поля:

  • total_count Сколько всего объектов было найдено, согласно переданным параметрам.
  • per_page Сколько объектов отображается «на странице», то есть возвращено с сервера в ответ на один запрос.
  • page Текущая страница, другими словами, часть объектов.

 

page и per_page также являются параметрами запроса. per_page по умолчанию - 100, и это его максимальное значение. Вы можете выбрать любое значение от 10 до 100 . page по умолчанию имеет значение 1 и увеличивается на единицу, чтобы получить следующую страницу результатов.

view GET /api/resource/id

Получить один объект с заданным идентификатором. Обычно содержит более полную информацию, чем в списке действий. list.

Возвращенный объект будет в поле ответа object .

update POST /api/resource/id

Редактировать объект с заданным идентификатором. В теле запроса необходимо передать поля объекта, которые должны быть изменены, и их новые значения.

В случае успеха поле ответа updated будет содержать идентификатор редактируемого объекта.

create POST /api/resource/

Создать новый объект. В теле запроса необходимо передать поля нового объекта и их значения.

В случае успеха поле ответа created будет содержать идентификатор созданного объекта.

Кроме того, код состояния ответа для этого запроса в случае успеха будет 201 , а не 200, как у всех других методов.

delete

DELETE /api/resource/id или

POST /api/resource/del/id

Удалить объект. Для совместимости с некоторыми типами прокси-серверов поддерживается альтернативный URL с методом POST.

В случае успеха поле ответа удалено будет содержать идентификатор удаленного объекта.

Очевидно, что не каждый ресурс поддерживает все 5 методов взаимодействия. Полный список доступных методов для каждого типа учетной записи можно увидеть в меню «Ресурсы и методы» слева.

Параметры запроса

Используется базовый метод передачи данных по HTTP. В случае запросов GET & mdash; параметры передаются в виде строки параметров URL, в случае POST, PUT, DELETE & mdash; в теле запроса.

Дополнительная сериализация запроса не требуется, однако обратите внимание, что в некоторых случаях необходимо использоватьКодировка URL.

Ответы и ошибки сервера

Формат данных ответа - всегда json. В таблице выше вы можете увидеть, какие поля следует ожидать в ответе в случае успешного запроса. В случае ошибки в ответе будет стерто только поле error.

Общее правило таково: если в ответе отсутствует поле error , то запрос выполнен успешно, а в ответе нужно искать поле, соответствующее запросу (см. Таблицу методов) .

Поле error содержит наиболее подробное описание ошибки. Это поле может содержать строку или более сложную структуру данных, например:

GET /api/geo?api_key=wrongkey

{ "error": "Unauthorized" }

GET /api/goal/?offer_id=-123

{ "error": { "offer_id": ["Offers not found"] } }

Помимо описания ошибки в поле error , общая информация об ответе (включая ошибку) передается в коде состояния HTTP. Список используемых кодов:

Код Дешифрование Используется для
200 OK Запрос успешно выполнен
201 Created Объект создан
400 Bad Request Ошибка в параметрах запроса
401 Unauthorized Ошибка авторизации (ключ API недействителен)
403 Forbidden У вас нет разрешения на выполнение этого метода на этом ресурсе
404 Not found Объект не найден
405 Method not allowed Этот ресурс не поддерживает требуемый метод.
500 Internal server error Ошибка с нашей стороны
501 Not implemented Метод еще не реализован, но скоро будет доступен