Я приведу самый простой пример с получением данных. По сути, у 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