@Citayto

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

Здравствуйте, вопрос может показаться не понятным, но я новичок в этом деле и до конца не понимаю, что значит API в целом и как его получить.

Мой знакомый рассказал в кратце, как получить какие-то запросы, с помощью которых можно будет взаимодействовать с сервером (или с приложением ), но их нужно найти в пакетах данных и если они зашифрованы, то нужно разобрать приложение и найти генератор ключа дешифровки… А потом я вообще ничего не понял.

Пожалуйста, расскажите простыми словами (аналогии приветствуются) что вообще происходит с этим API и что это вообще?
Что за запросы и как их можно получить, если код программы изменился и старые запросы (API, я просто не знаю как правильно поставить вопрос) стали недоступны?

Если понадобиться, то приложение на Java.
  • Вопрос задан
  • 448 просмотров
Решения вопроса 1
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 браузера для работы с плагинами.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
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
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы