• Как получают API?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Wiki
    API (программный интерфейс приложения, интерфейс прикладного программирования) (англ. application programming interface, API [эй-пи-ай][1]) — описание способов (набор классов, процедур, функций, структур или констант), которыми одна компьютерная программа может взаимодействовать с другой программой


    По простому
    API - это набор правил, по которым можно наладить связь между разными системами. Это то, что предоставляет некоторый сервис. Он же и разрабатывает его и он же даёт его в пользование.

    Пример с той же погодой. Есть сервис - Погода. Он решил, что может предоставлять данные о погоде всем желающим.
    Ты скажешь - "ну вот у них же сайт есть и там всё написано", но чтоб использовать данные о погоде в собственной программе придётся "парсить" целую страницу. Это не удобно, затратно и нестабильно.
    Для этого разработчики разрабатывают набор правил, в данном случае - запросов. Выполнение которых будет возвращать строго определенную информацию.
    Это же API может позволять вносить/модифицировать и удалять информацию (REST).

    API как правило - это документация. Пример такой документации (API) для погоды - https://openweathermap.org/current

    Если углубиться в вопрос, то ты столкнёшься с такими понятиями как токен или ключ, которые определяют уровень доступа к методам API. Некоторые API могут работать без таких вещей, но по большей части все используют токены. Хотя бы номинально.

    API - позволяет делать только то, что реализовали разработчики. И если они не добавили методы, например, установки значения текущей температуры - ты не сможешь её изменить.

    Ещё один момент, касательно топика - это не путать API и эмуляцию запросов с сайта сервиса. Т.е. смотреть, что вызывает сайт при работе ("искать в пакетах") и вызывать то же самое - это не API.

    Дополнительно

    API - это не только про запросы. API - более широкое понятие нежели доступ к серверу.
    Через API работают, например, все программы в Windows - WinAPI. Через API программы взаимодействуют между собой. Плагины в браузере используют API браузера для работы с плагинами.
    Ответ написан
    2 комментария
  • Как получают API?

    nastya97core
    @nastya97core
    Начинающий программист
    d9a5c7a5629a4580bdf07dbe4882ca2a
    Я приведу самый простой пример с получением данных. По сути, у API возможности неограниченны. Всё что хочешь - то и можно. Просто чаще всего API используют, чтобы получить какие-то данные.

    Принцип такой:
    Есть сайт с погодой. Чтобы получить температуру в условном Питере, которую они замерили - тебе нужно зайти к ним на сайт, вбить в параметрах поиска СПБ и глазами посмотреть.
    И вот, чтобы обеспечить потребность "знать погоду" - тебе достаточно просто заходить к ним на сайт. Но если ты хочешь, чтобы на твоём сайте/приложении/в игре - была погода, то тут возникнут проблемы

    - По сути ты мог бы просто каждые 10 минут заходить на сайт погоды, брать от туда данные и загружать себе на сайт. Согласись - неудобно.
    - Либо ты мог бы настроить бота, который бы заходил на сайт, симулируя пользователя и доставал бы из нужного блока температуру, а потом вставлял результаты тебе на сайт. По сути, так и делают, когда нет API, но это не совсем стабильный канал: а) тебя могут забанить по ip за странные запросы; б) если изменится вёрстка сайта (порядок блоков), то разумеется достать температуру ты уже не сможешь и придётся переписывать бота
    - И тут на помощь приходит API. Принцип таков: ты можешь договориться с поставщиком температуры о том, что ты будешь брать у них данные. Это может быть как платная услуга, так и бесплатная (обычно зависит от кол-ва запросов). В итоге тебе дают ссылку, в которой указаны уже все параметры, которые тебе нужны и ты просто настраиваешь своего бота на то, чтобы получить эти данные по ссылке и вставить на свой сайт.

    Чтобы посмотреть температуру в Санкт-Петербурге тебе нужно открыть ссылку:
    http://api.openweathermap.org/data/2.5/weather?q=Санкт-Петербург&units=metric
    нихрена работать не будет, потому что тут не указан ключ API.

    А зачем нужен ключ API?
    Как я уже сказала: API бывают платные и бесплатные и их платность зависит обычно от кол-ва запросов, которые ты делаешь. Но как поставщик узнает, кто делает запрос: я, ты или тот парень? Чтобы регулировать это - они присваивают тебе твой личный номер (айди), по которому они будут отслеживать, сколько запросов ты уже сделал. Также в твоём айди закладываются твои права. Может быть посмотреть погоду в Питере - бесплатно, но вот если ты хочешь узнать точную температуру в условном Кудрово, то будь добр - доплати и тогда они предоставят по твоему айди доступ к этой температуре. Кратко: API-ключ - пароль от твоего аккаунта.

    И вот тебе верная ссылка:
    http://api.openweathermap.org/data/2.5/weather?q=Санкт-Петербург&units=metric&appid=0f47096f1eb155f8b277692876fb963e
    Ответ написан
    Комментировать