API (Application Programming Interface) расшифровывается как “интерфейс прикладного программирования” или “интерфейс программирования приложений”. Он позволяет осуществлять связь и обмениваться данными между двумя отдельными модулями программы. Система программного обеспечения, реализующая API, содержит функции/подпрограммы, которые могут быть выполнены с помощью другого программного обеспечения.
«Общение» между модулями приложения происходит с использованием стандартных форматов XML и JSON и посредством специальных протоколов REST и SOAP.
Например, некое приложение, сервис предоставления данных о прогнозе погоды — имеет API, которым могут пользоваться разработчики. То, каким образом разработчики будут пользоваться, зависит от возможностей API. Например, может ли API выдавать данные о прогнозе погоды на неделю вперед, по каким городам мира выдаются данные, возможно ли запросить такие данные, как скорость ветра, давление и т.д.
Форматы данных
Как и говорилось выше, основные форматы, которые используются для передачи данных в API — это JSON и XML. На изображении ниже представлена одна и та же информация в разных форматах.

В JSON существуют типы данных, которые записываются по-разному. Данные в JSON записываются парами «Ключ»:»Значение». Например:
{“name”:”JamesKirk”}
Имя параметра — это строка в двойных кавычках слева от двоеточия.
{“name”}
Значение — может быть строкой в двойных кавычках, числом, логическим значением (true или false), объектом, массивом, или значением null. Эти структуры могут быть вложены друг в друга.
{”JamesKirk”}
Объект — это множество пар «Ключ»:»Значение», заключённое в фигурные скобки { }. Между именем параметра и значением стоит двоеточие «:», а пары «Ключ»:»Значение» разделяются запятыми “,”.
{
“name”:”JamesKirk”,
«age»:40
}
Строка — это упорядоченное множество из нуля или более символов Unicode, заключенное в двойные кавычки.
Массив — это множество объектов. Массив заключается в квадратные скобки [ ], а значения отделяются запятыми (см. пример на изобрежнии выше).
В XML данные хранятся между так называемыми «тэгами».
Существуют открывающие и закрывающие тэги, а данные, в свою очередь, хранятся между ними.
Например:
<note> — открывающий тэг;
</note> — закрывающий тэг.
Примечательно то, что тэги чувствительны к регистру. Другими словами, нельзя использовать открывающий тэг <MESSAGE> и закрывающий тэг </message>. XML воспринимает это как разные тэги.
Более подробно о принципах построения XML можно изучить в официальной документации тут.
XML является более громоздким форматов данных и все больше разработчиков API от него отказываются.