API, определение и список тех, кого нужно знать
Перед началом любого проекта неплохо бы изучить API, доступные в сети.
Наряду с языком программирования, API является основным инструментом программиста и позволяет избежать переписывания существующего кода.
API (интерфейс прикладного программирования) представляет собой набор
- заголовки функций,
- классы и их члены (для объектно-ориентированного языка),
которые предоставляются библиотекой программного обеспечения, веб-службой или операционной системой, чтобы их можно было использовать для программирования программного обеспечения, которое их использует.
Реализация функций и классов, которые могут быть специфичны для конкретного аппаратного обеспечения, отличается от независимого от него API. Однако API существует только при наличии хотя бы одной реализации.

Доступ к оборудованию... твердотельный накопитель Seagate
Вопрос об авторском праве
Мы должны различать API и библиотеку. Один и тот же API может иметь разные реализации, как напоминает нам судебный процесс между Oracle и Google. Последний разработал специфическую реализацию стандартного Java API. Это побудило Oracle, в попытке вернуть роялти на Android, потребовать, чтобы решение было вынесено и в пользу авторских прав на API, что было бы очень вредно. По итогам судебного разбирательства было заявлено, что использование API в США подпадает под справедливое использование, исключение из авторского права. Европа, со своей стороны, постановила, что API не защищены авторским правом.
4 апреля 2021 года Верховный суд США поддержал принцип, согласно которому использование API подпадает под «добросовестное использование» и не нарушает авторские права на код в целом.
Определение такого интерфейса не ограничивается библиотеками; API также может быть определен для конечного приложения, чтобы оно могло взаимодействовать с другими приложениями.
Характеристики АФС
Языковая зависимость
API может использоваться на одном языке программирования или быть независимым от языка. Во втором случае в качестве формата данных для запросов к функциям и методам может использоваться промежуточный язык типа XML.
Пользовательская лицензия
Он либо находится под свободной лицензией и может быть использован бесплатно любым программистом, либо под проприетарной лицензией и доступен только ограниченному сообществу, как это бывает, например, с API игровых консолей.
Уровень языка
Мы различаем высокоуровневый API, с точки зрения языков программирования, таких как графические API, и ABI (Application Binary Interface), более близкий к системе, такой как Linux Standard Base или аппаратные интерфейсы драйверов.