Что такое «API» и как вы его используете? – CloudSavvy IT

«API» – это промежуточное программное обеспечение, которое находится между двумя приложениями и позволяет им взаимодействовать с использованием предопределенных правил. На практике API обычно используются для предоставления клиентским приложениям доступа к защищенной базе данных.
Что делают API?
На высоком уровне API просто устанавливают связь между двумя приложениями. Они не могут общаться напрямую, поскольку не имеют доступа к коду друг друга, поэтому им приходится прокладывать провод между ними и отправлять сигналы по линии. API определяет, как эти сигналы должны быть отправлены. Почти каждое приложение, работающее на вашем компьютере, использует какой-то API для общения с тысячами других вещей.
На практике термин «API» обычно используется для обозначения веб-API, которые формируют связь между сервером и клиентом или между сервером и серверной службой. Эти API действуют как точка доступа для любой службы, которая стоит за ними.
Например, представьте, что у вас есть клиентское приложение, которое должно общаться с сервером с базой данных. Очевидно, вы не можете предоставить клиенту полный доступ к базе данных, так как это создает ряд проблем. Во-первых, это, вероятно, худшая ошибка безопасности, которую вы можете совершить, но кроме того, она также нарушает всю модель клиент-сервер. Клиенту не нужно беспокоиться об обращении к базе данных или хранении данных; он должен связаться с сервером и позволить серверу выполнять тяжелую работу.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Вместо предоставления клиенту полного доступа вы можете создать другую службу, которая будет взаимодействовать с базой данных от имени клиента. Это приложение API, и оно находится прямо перед базой данных (или любой другой службой за ней).
Клиент отправляет запросы в приложение API, обычно через HTTP, используя GET
и POST
Запросы. Это может быть URL на вашем сервере, например:api.yoursite.com
«. Если клиенту нужно выполнить поиск в базе данных по определенному запросу, API запросит базу данных выполнить поиск, а затем вернет результаты. Обычно API взаимодействуют через JSON, который возвращает результаты в виде объекта со строго определенными типами, например:
{ "name": "MyAPI", "search_results": [...] }
Это еще одно преимущество API – стандартизация структуры данных. Ваш API должен всегда возвращать один и тот же формат и тип данных каждый раз, что облегчает его использование в различных приложениях. Большинство крупных технологических компаний имеют общедоступные APIи обширная документация по структуре API и как он используется.
Как я могу использовать API?
API довольно стандартизированы. Они почти всегда будут доступны через HTTP и обычно возвращают данные JSON, то есть любой язык программирования, который может выполнять HTTP-запросы и декодировать JSON, может общаться с API и получать данные из него. Даже так просто, как curl
или же wget
который может загружать веб-контент, может получить доступ к API.
Вы можете использовать общедоступные API-интерфейсы в любом приложении, которое вам нужно, хотя иногда они ограничены в скорости, чтобы предотвратить злоупотребления. Например, KeyCDN запускает API для получения информации о местоположении с адреса API, но вы ограничены тремя запросами в секунду. Вы можете использовать это в любом приложении, сделав HTTP GET
запрос к конечной точке API с IP-адресом, переданным в качестве параметра URL. Например:
https://tools.keycdn.com/geo.json?host={IP_ADDRESS}
Вернул бы что-то вроде:
{ "status": "success", "description": "Data successfully received.", "data": { "geo": { "host": "173.79.254.254", "ip": "173.79.254.254", "rdns": "pool-173-79-254-254.washdc.fios.verizon.net", "asn": 701, "isp": "MCI Communications Services, Inc. d/b/a Verizon Business", "country_name": "United States", "country_code": "US", "region_name": "Virginia", "region_code": "VA", "city": "Alexandria", "postal_code": "22309", "continent_name": "North America", "continent_code": "NA", "latitude": 38.719, "longitude": -77.1067, "metro_code": 511, "timezone": "America/New_York", "datetime": "2019-08-22 17:30:48" } } }
Вы можете сохранить этот результат в переменной с именем response
, Затем, если вы хотите узнать почтовый индекс адреса, вы можете получить к нему доступ, используя response.data.geo.postal_code
,
Существуют библиотеки для большинства языков, которые облегчают этот процесс, и многие языки также имеют встроенные инструменты. Мы покажем несколько распространенных, но быстрый поиск «___ HTTP-запроса» должен отобразить результаты для языка, с которым вы работаете.
JavaScript
JavaScript может делать HTTP-запросы из коробки, используя XMLHttpRequest()
объект:
const Http = new XMLHttpRequest(); const url='https://api.github.com/'; Http.open("GET", url); Http.send(); Http.onreadystatechange = (e) => { console.log(Http.responseText) }
Тем не менее, этот синтаксис довольно неуклюжий, поэтому он обычно обрабатывается с использованием других библиотек, если вам не нужен ванильный JS. Например, jQuery имеет ajax
метод, который заботится об этом:
$.ajax('https://api.github.com/', { dataType: 'json', success: function (data, status, xhr) { ... } });
И есть axios
библиотека, который обрабатывает это с помощью обещаний:
axios.get('https://api.github.com/') .then((data) => { console.log(data); } )
В любом случае объекты JSON могут десериализоваться непосредственно в объекты JavaScript с помощью JSON.parse()
, что позволит вам сохранить результаты для использования в другом месте.
PHP
PHP может делать запросы GET изначально, используя file_get_contents
функция, которую можно использовать вместе json_decode
чтобы прочитать результат API в переменную:
$json = file_get_contents('https://api.github.com/'); $obj = json_decode($json);
Если вы хотите сделать POST
запрос или требуется дополнительная настройка, вы можете создать специальный контекст для file_get_contents
с помощью stream_context_create
:
$url ='https://api.github.com/'; $data = 'something'; $options = array( 'http' => array( 'header' => "Content-type: application/x-www-form-urlencodedrn", 'method' => 'POST', 'content' => http_build_query($data) ) ); $context = stream_context_create($options); $result = file_get_contents($url, false, $context); if ($result === FALSE) { //error }
питон
Python не имеет отличного способа сделать это изначально, поэтому вам придется установить Запросы библиотека из pip
, После этого вы можете делать запросы так:
import requests r = requests.get("https://api.github.com/")
Это возвращает объект, представляющий всю транзакцию HTTP, поэтому для получения фактического контента вам придется использовать r.content
, Вам, вероятно, также понадобится Библиотека JSON декодировать ответ в читаемый Python объект.
import json import requests r = requests.get("https://api.github.com/") decoded = json.loads(r.content)
Как я могу сделать свой собственный веб-API?
Если у вас есть какие-то данные, которые вы хотели бы сделать доступными, вы можете поставить перед ними API для доступа к ним через Интернет.
Для этого вам нужно создать сервер API. Единственное требование – он может прослушивать HTTP и отвечать на запросы, поэтому вы можете использовать любой язык программирования, который вам нравится. Скорее всего, вам также понадобится библиотека для подключения к выбранной вами базе данных на этом языке, и вы также можете захотеть реализовать какую-то аутентификацию, например OAuth 2.0 так что вы можете отслеживать пользователей и их разрешения.
Экспресс библиотека Node.JS, обычно используемая для создания простых веб-API с использованием JavaScript. Сервер Express прослушивает HTTP и может перенаправлять различные маршруты в функции-обработчики. Вы можете использовать это вместе с Узел MySQL клиент (или любая другая база данных) для создания API, обогащенных данными. Для Python вам также понадобится веб-фреймворк, такой как колба который может слушать и отвечать на запросы.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)