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

API изображение
Андрей Суслов / Shutterstock

«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, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *