API для роботи з сервісами: Базові моменти



По своїй суті API являє собою набір готових класів, функцій, змінних і констант, що надаються додатком для використання в зовнішніх програмних продуктах. Ці інтерфейси знаходять застосування в найрізноманітніших сферах: від IoT до аналітики та інтеграції сервісів.

Роберто Медрано (Roberto Medrano) з SOA Software вважає, інтерфейси програмування додатків допоможуть розвивати інновації в двох напрямках. По-перше, компанії зможуть відкрити свої дані, щоб прискорити розробку креативних рішень від компаній-партнерів і сторонніх розробників (приклад реалізації клієнтського додатка для API 1cloud на C# можна знайти на тут).

По-друге, за словами Медрано, продукти і сервіси, забезпечені API, надають розробникам інструменти, щоб ті могли сконцентруватися на створенні нових корисних продуктів, не думаючи про управління backend-розробкою і серверами.

Ще API не просто забезпечують передачу і обмін даними, але дозволяють їх проаналізувати. «API надають нам величезну кількість даних про поведінку покупця, які неможливо було б отримати іншими способами», – зазначає Медрано. На їх основі можна спробувати зрозуміти, чи потрібні модифікації і зміни у працюючих системах.

Розвиваючи сервіс 1cloud, ми зіткнулися з необхідністю підвищення якості інтеграції клієнтських додатків з нашим хмарою. Іншими словами, полегшити взаємодію з нашою інфраструктурою для клієнтів і партнерів. Для вирішення цього завдання ми розробили свій API.

API 1cloud дозволяє автоматизувати процес масштабування віртуальної інфраструктури. Наприклад, можна підключити додаткові віртуальні машини при підвищенні навантаження, а коли станеться спад активності – автоматично вимкнути. Таким чином, інтерфейси програмування додатків можна використовувати для здійснення всіх дій, доступних користувачам в графічному інтерфейсі системи управління.

Одним з найбільш часто зустрічаються застосувань API створення нового віртуального сервера. Сформувавши і відправивши POST-запит, користувач «піднімає» нову ВМ із зазначеними параметрами. Ось один з варіантів запитів:

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer 75bb9805c018b1267b2cf599a38b95a3a811e2ef7ad9ca5ed838ea4c6bafaf50' "https://api.1cloud.ru/Server" -d '{"Name":"testAPI","CPU":1,"RAM":1024,"HDD":40,"imageID":1,"HDDType":"SSD","IsHighPerformance":true}'

У відповідь на нього прийде JSON-об'єкт з атрибутами створеного сервера:

{
"ID":777,
"Name":"testAPI",
"State":"Active",
"IsPowerOn":true,
"CPU":1,
"RAM":1024,
"HDD":40,
"IP":"5.200.XX.XX",
"AdminUserName":"1CloudAdmin",
"AdminPassword":"ХХХХХХХХ",
"Image":"WinServer2008R2x64En",
"IsHighPerformance":false,
"HDDType":"SAS",
"LinkedNetworks":[{"NetworkID":57, "IP":"10.0.1.1"}, {"NetworkID":98, "IP":"10.0.2.4"}]
}

Ще один вид виконуваних завдань – це створення шаблону віртуального сервера. Для цього користувачеві потрібно відправити POST-запит за адресою api.1cloud.ru/image. Ось приклад:

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer 75bb9805c018b1267b2cf599a38b95a3a811e2ef7ad9ca5ed838ea4c6bafaf50' "https://api.1cloud.ru/image" -d '{"Name":"Шаблон","TechName":"TemplateAPI","ServerID":6940}'

Відповіддю буде JSON-об'єкт, що містить всі атрибути створеного шаблону. Наприклад:

{
"ID":72,
"Name":"testAPITemplate"
}

Створений шаблон згодом можна видалити – просто відправляємо запит DELETE за адресою api.1cloud.ru/image{id}, де {id} – це ідентифікатор видаляється шаблону.

curl -DELETE X -H 'Content-Type: application/json' -H 'Authorization: Bearer 75bb9805c018b1267b2cf599a38b95a3a811e2ef7ad9ca5ed838ea4c6bafaf50' "https://api.1cloud.ru/image/72"

Таким чином, за допомогою методів API можна розгорнути сервер, відправивши лише один запит. Автоматизувати ми можемо всі завдання з управління хостингом. API-інтерфейс може бути корисний як приватним користувачам, які не хочуть розбиратися зі складними технологіями, так і великим клієнтам, у планах яких початок надання власних послуг на базі інфраструктури провайдера.



До речі про інфраструктуру. При її створенні ми хотіли якомога сильніше розділити компоненти хостингу. У цьому випадку при збільшенні навантаження ми зможемо просто перенести потрібний сервіс на новий сервер. Система 1cloud містить наступні елементи: сайт, внутрішня панель, панель адміністратора та служби підтримки, сервіс нотифікації, сервіс обробки завдань, платіжний сервіс, сервіс відпрацювання асинхронних завдань, сервіс моніторингу.

Сайт 1cloud, про редизайн якого ми нещодавно розповідали, служить своєрідною вітриною, яку в першу чергу бачать відвідувачі. Для підвищення зручності використання нами були додані важливі для користувачів елементи, на зразок калькулятора, що дозволяє провести розрахунок вартості послуг. Інші сервіси відповідають за тарифікацію і списання грошей з клієнтів, надсилання автоматичних повідомлень з повідомленнями та моніторинг системи з метою пошуку «завислих» завдань. Докладніше про це ви можете прочитати тут.

Якщо повернутися до питання про API, то він також здатний допомогти в розвитку Інтернету речей. «Інтернету речей без API не буває – кожен біт інформації, що переходить з пристрою на пристрій, передається за допомогою API», – говорить Медрано. Більш того, IoT дозволяє проводити «передачу даних на рівні пристроїв, не витрачаючи час на їх сторонню обробку».

Так що ж значит Інтернет речей для бізнесу? Те, чим він є для окремо взятої організації залежить від того, чим компанія збирається займатися. Тим не менш, певний «кістяк» все ж існує і, за словами дослідника компанії 451 Research Брайана Партріджа (Brian Partridge), складається з пристроїв, що об'єднує їх мережі та хмарного сервісу.

Інтернет речей передбачає наявність зв'язків між безліччю елементів, що серйозно ускладнює інфраструктуру. Однак, згідно з даними Tech Pro Research, 29% з опитаних американських компаній вже використовують IoT для збору даних, а ще 26% планують це робити в найближчому майбутньому.



Адже, за даними Gartner, кількість генеруються даних з кожним роком буде тільки збільшуватися і до 2020 року досягне 40 зеттабайт.



Дані завжди були основною Інтернету речей, відповідно, потрібно подбати про їх безпеку. словам Партріджа, існують три головні небезпеки, пов'язані з передачею даних в Інтернеті речей:

  • Забезпечення конфіденційності – запобігання доступу до даних з боку третіх осіб
  • Збереження цілісності – передача даних з неможливістю перехоплення або зміни
  • Аутентифікація – це спосіб визначення того, досягли чи передані дані точки призначення
Завдання полягає не тільки в тому, щоб безпечно підключити пристрій до мережі, а забезпечити безпеку взаємодії різних пристроїв. Партрідж каже, що йому часто ставлять одне і те ж питання: «чи Так варто уникати Інтернету речей?» Він завжди відповідає, що боятися IoT-технологій не потрібно, оскільки вони дають компаніям великі можливості для розвитку бізнесу.

При цьому точкою інтересу в забезпеченні безпеки повинні стати не пристрої і програмне забезпечення, а способи взаємодії різних елементів пов'язаної системи. Все це відкриває нові можливості для провайдерів послуг – вони можуть запропонувати у якості сервісу захист «точок взаємодії» і шлюзів. Це допоможе бізнесу забезпечити безпеку своїх даних. Не всі компанії зможуть самостійно забезпечити безпеку даних IoT-систем, тому їм буде простіше звернутися до стороннім постачальникам, які допоможуть захистити корпоративні системи.

P. S. Пара наших публікацій по темі на Хабре:



Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.