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 — параметри передаються у вигляді рядка параметрів 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 Метод ще не реалізований, але скоро буде доступний