API: что это такое, как осуществлять работу и настроить интеграцию. Что такое api

Пришло время поговорить о таком понятии как API функции в языке Visual Basic . Чем же важны эти функции в Visual Basic? Давайте разберемся, во-первых, когда Вы начнете программировать на Visual Basic, Вы сразу же поймете, что с использованием этих функций можно написать очень серьезные программы, во-вторых, просто многое нельзя сделать без использования API функций, например, практически все что связанно с использованием операционной системы Windows (например: узнать имя пользователя, место на жестком диске и так далее ).

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

Теория по API функциям Visual Basic

API – это аббревиатура Application Programming Interface (интерфейс прикладного программирования ). Другими словами, API – это набор функций, которые сама операционная система дает программисту для использования их в своих программах. С помощью API программисты легко реализуют свои задумки на практике.

API функции могут вызываться из Visual Basic для выполнения задач, для которых недостаточно стандартного программного кода Visual Basic. Например, стандартные средства Visual Basic не позволяют выключить компьютер или перезагрузить его. Однако все это можно легко сделать через обращение к соответствующей функции API.

Практически все функции, которые располагаются в Windows - находятся внутри DLL (Dynamic Link Library ). Все dll-файлы расположены в системной папке Windows. Существует свыше 1000 функций API, которые условно делятся на четыре основные категории.

  • Работа с приложениями - запуск и закрытие приложений, обработка команд меню, перемещения и изменения размера окон;
  • Графика - создание изображений;
  • Системная информация - определение текущего диска, объем памяти, имя текущего пользователя и т.д.;
  • Работа с реестром - манипуляции с реестром Windows.

Применение API функций на практике

Теперь перейдем непосредственно к использованию этих функций на практике. Функции API, вызываемые в Visual Basic, должны быть сначала объявлены. При объявлении указывается имя DLL и функции, а также информация о количестве и типе аргументов.

Процедуры DLL объявляются командой Declare в секции General Declarations модуля формы или стандартного модуля:

Declare Function имя Lib "библиотека" [([ _ переменная [,ByVal,] переменная ]...])] As тип

Процедуры DLL, находящиеся в стандартных модулях, по умолчанию являются открытыми и могут вызываться из любой точки приложения. Процедуры, объявленные в модуле формы, являются закрытыми и перед их объявлением должно стоять ключевое слово Private.

Секция Lib сообщает, где следует искать файл DLL, содержащий функцию. При ссылке на основные библиотеки Windows (user32.dll, kernel32.dll, gdi.dll) расширение включать не обязательно.

Если путь к файлу не указан, то начинается просмотр каталогов в следующей последовательности

  1. Каталог, содержащий EXE-файл программы;
  2. Текущий каталог;
  3. Системный каталог Windows;
  4. Каталог Windows;
  5. Переменная окружения Path.

Вот небольшой перечень стандартных библиотек DLL Windows:

  • advapi.dll - защита NT,реестр и другие продвинутые сервисы;
  • comdlg.dll - стандартные диалоговые окна;
  • gdi.dll - интерфейс графических устройств;
  • kernel32.dll - память, диски, процессы, ресурсы;
  • mpr.dll - сети;
  • netapi32.dll - библиотека сетевого API;
  • shell32.dll - оболочка Windows, drag-and-drop ,выборка значков;
  • user32.dll - пользовательский интерфейс-окна, меню, строки, сообщения;
  • version.dll - контроль версий;
  • winmm.dll - мультимедиа, звук, джойстики, таймеры;
  • winspoll.dll - диспетчер печати.

Большинство процедур DLL за документировано с использованием нотации языка программирования C и C++. Для успешного преобразования функции API в команду Declare необходимо разбираться в механизме передачи аргументов. Обычно аргументы передаются по значению. В этом случае перед именем аргумента ставится ключевое слово ByVal. Если аргумент передается по ссылке, то ставится ByRef.

Вот самый малый список функций, которые используются в Visual Basic:

  • BitBlt - копирует изображение из одного hDC в другой;
  • FindWindow - находит Handle окна с указанным Caption;
  • GetCursorPos - возвращает текущую позицию курсора мыши (глобально);
  • GetDriveType - возвращает тип накопителя;
  • GetForegroundWindow - возвращает Handle активного окна;
  • SetCursorPos - устанавливает новую позицию курсора мыши;
  • SetVolumeLabel - изменяет метку диска;
  • SetWindowPos - устанавливает позицию окна с определённым Handle (также с помощью этой функции можно сделать так, чтобы окно было ПОВЕРХ всех;
  • ShellExecute - запускает приложение, ассоциированное с расширением, которое имеет указанный файл (также может просто запустить указанное приложение);
  • ShowCursor - скрывает или показывает курсор мыши на экране.

Примеры работы с реестром

Также при программировании на Visual Basic, да и на других языках возникает проблема, когда нужно использовать реестр Windows, но с помощью api функций это сделать легко, например:

Для чтения строкового параметра используйте функцию GetRegString

Пример:

Dim test As String test = GetRegString(HKEY_LOCAL_MACHINE, _ "Software\Microsoft\DirectX", "Version") Form1.Caption = test

Для чтения параметра DWORD GetRegDWord

Пример:

Dim test As Long test = GetRegDWord(HKEY_LOCAL_MACHINE, _ "Software\Microsoft\Internet Explorer\AboutURLs", "Home") Form1.Caption = test

Для записи строкового параметра используется SetRegString

Пример:

SetRegString HKEY_LOCAL_MACHINE, _ "Software\test", "MyProgram", "Options"

Если ключ или параметр не были созданы, то они будут созданы, если ключ или параметр уже существуют, то новые значения запишутся поверх старых.

Для записи параметра типа DWORD используется SetRegDWord

Пример:

SetRegDWord HKEY_LOCAL_MACHINE, _ "Software\test", "MyProgram", "555"

Для удаления ключа из реестра используется функция DeleteRegKey

Пример:

DeleteRegKey HKEY_LOCAL_MACHINE, "Software", "test", True

Второй параметр - Ключ-родитель
Третий параметр - True - если требуется подтверждение на удаление или False - если подтверждение не требуется.

Для удаления параметра из реестра используется функция DeleteRegValue

Пример:

DeleteRegValue HKEY_LOCAL_MACHINE,_ "Software\Microsoft\Internet Explorer\AboutURLs", "mozilla", False

На самом деле возможности API функций в операционной системе Windows практически безграничны. Давайте закончим на этом рассмотрение этой возможности Visual Basic и напоследок напишем небольшую программку с использованием API функций.

Данная программа просто выводит сообщение на экран, вставьте следующий код:

Private Declare Function BeginPath Lib "gdi32" (ByVal hdc As Long) As Long Private Declare Function EndPath Lib "gdi32" (ByVal hdc As Long) As Long Private Declare Function PathToRegion Lib "gdi32" (ByVal hdc As Long) As Long Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long Private Sub Form_Load() Const TEXT = "Ты использовал API" Dim hRgn As Long Font.Name = "Times New Roman" Font.Bold = True Font.Size = 60 Width = TextWidth(TEXT) Height = TextHeight(TEXT) BeginPath hdc Print TEXT EndPath hdc hRgn = PathToRegion(hdc) SetWindowRgn hWnd, hRgn, False Move (Screen.Width - Width) / 2, (Screen.Height - Height) / 2 End Sub

Мы здесь использовали 4 функции (BeginPath, EndPath, PathToRegion, SetWindowRgn), которые располагаются в двух dll библиотеках (gdi32, user32).

На этом все, пока!

В ероятно, вы видели термин «API». Операционная система, веб-браузер и обновления приложений часто объявляют о новых API для разработчиков. Но что такое API?

Интерфейс прикладного программирования

Термин API является аббревиатурой, и он означает «Интерфейс прикладного программирования».

API — это как меню в ресторане. В меню представлен список блюд, которые Вы можете заказать, а также описание каждого блюда. Когда Вы укажете, какие пункты меню Вы хотите, кухня ресторана выполняет эту работу и предоставляет Вам готовые блюда. Вы точно не знаете, как ресторан готовит эту еду, и Вам это не нужно.

Аналогично, API предоставляет множество операций, которые могут использовать разработчики, а также описание того, что они делают. Разработчику необязательно знать, как, например, создается операционная система и отображается диалоговое окно «Сохранить как». Им просто нужно знать, что он доступен для использования в приложении.

Это не идеальная метафора, поскольку разработчикам, возможно, придется предоставить свои собственные данные API для получения результатов, поэтому, возможно, это больше похоже на причудливый ресторан, где Вы можете предоставить некоторые из Ваших собственных ингредиентов, с которыми будет работать кухня.

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

API упрощают жизнь для разработчиков

Предположим, Вы хотите разработать приложение для iPhone. Операционная система Apple iOS предоставляет большое количество API-интерфейсов , как и любая другая операционная система, чтобы сделать это проще для Вас.

Например, если Вы хотите встроить веб-браузер для отображения одной или нескольких веб-страниц, Вам не нужно программировать собственный веб-браузер с нуля только для Вашего приложения. Вы
можете использовать WKWebView API для встраивания веб-браузера WebKit (Safari) в приложение.

Если Вы хотите снимать фотографии или видео с камеры iPhone, Вам не нужно писать свой собственный интерфейс камеры. Вы можете использовать API-интерфейс камеры для встраивания камеры iPhone в свое приложение. Если бы API не существовало, разработчикам приложений пришлось бы создавать собственное программное обеспечение камеры и интерпретировать входы аппаратного обеспечения камеры. Но разработчики операционной системы Apple сделали всю эту тяжелую работу, поэтому разработчики могут просто использовать API-интерфейс камеры для встраивания камеры, а затем продолжить написание своего приложения. И когда Apple улучшит API-интерфейс камеры, все приложения, которые используют его, автоматически воспользуются этим улучшением.

Это относится ко всем платформам. Например, Вы хотите создать диалоговое окно в Windows? Для этого есть API . Хотите поддерживать аутентификацию отпечатков пальцев на Android? Для этого есть API , так что Вам не нужно тестировать каждый датчик отпечатков пальцев любого производителя Android. Разработчикам не нужно повторно изобретать колесо снова и снова.

API-интерфейсы управляют доступом к ресурсам

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

Например, если Вы когда-либо посещали веб-сайт и видели в своем браузере сообщение о том, что веб-сайт запрашивает Ваше точное местоположение, этот веб-сайт пытается использовать API геолокации в Вашем веб-браузере. Веб-браузеры предоставляют API-интерфейсы, чтобы веб-разработчикам было легко получить доступ к Вашему местоположению — они могут просто спросить «где вы?», и браузер сделает тяжелую работу по доступу к GPS или соседним сетям Wi-Fi, чтобы найти Ваше физическое местоположение.

Однако, браузеры также предоставляют эту информацию через API, потому что можно контролировать доступ к ней. Когда веб-сайт хочет получить доступ к Вашему точному местоположению, единственный способ получить его — через API местоположения. И, когда веб-сайт пытается использовать его, Вы — пользователь — можете разрешить или отклонить этот запрос. Доступ к аппаратным ресурсам, таким как датчик GPS, возможен только через API, поэтому браузер может контролировать доступ к аппаратным средствам и ограничивать возможности приложений.

Этот же принцип используется для современных мобильных операционных систем, таких как iOS и Android, где мобильные приложения имеют разрешения, которые могут быть реализованы путем контроля доступа к API. Например, если разработчик пытается получить доступ к камере через API-интерфейс камеры, Вы можете отклонить запрос на разрешение, и приложение не будет иметь доступа к камере Вашего устройства.

Файловые системы, которые используют разрешения, как и в Windows, Mac и Linux, имеют те права, которые применяются API файловой системы. Типичное приложение не имеет прямого доступа к необработанному физическому жесткому диску. Вместо этого приложение должно получить доступ к файлам через API.

API используются для связи между службами

API также используются по другим причинам. Например, если Вы когда-либо видели объект Google Карты, встроенный на веб-сайт, этот веб-сайт использует API Карт Google для встраивания этой карты. Google предоставляет API-интерфейсы, подобные этим, для веб-разработчиков, которые затем могут использовать API-интерфейсы, чтобы собирать сложные объекты прямо на своем веб-сайте. Если таких API не существует, разработчикам, возможно, придется создавать свои собственные карты и предоставлять свои собственные данные карты, чтобы разместить небольшую интерактивную карту на веб-сайте.

И поскольку это API, Google может контролировать доступ к Картам Google на сторонних веб-сайтах, гарантируя, что они будут использовать его согласованным образом, а не пытаться беспорядочно внедрять фрейм, который показывает веб-сайт Google Maps, например.

Это относится ко многим различным онлайн-сервисам. Существуют API для запроса перевода текста из Google Translate или отображения комментариев Facebook или твитов из Twitter на веб-сайте.

Стандарт OAuth также определяет ряд API, которые позволяют Вам входить на сайт через другой сервис, например, использовать Ваши учетные записи Facebook, Google или Twitter для входа на новый веб-сайт без создания новой учетной записи пользователя только для этого сайта. API — это стандартные контракты, которые определяют, как разработчики взаимодействуют с сервисом, и вид продукции, которую разработчики должны ожидать получить.

Если Вы прочли эту статью, то у Вас будет лучшее представление о том, что такое API. В конечном итоге Вам не нужно знать, что такое API, если Вы не разработчик. Но, если Вы видите, что программная платформа или служба добавили новые API для различных аппаратных средств или услуг, разработчикам должно быть проще использовать такие функции.

У вас есть собака. Но она не разговаривает на человеческом языке. Однако она способна "понимать" его путём команд, которым её научили в процессе дрессировки. Если сказать пёсику, знающему команду "тапки!" что-то типа "Рексик, принеси мне, пжалста, тапули мои с зайчушками", он разве что на кличку ухом поведёт, но тапки не принесёт. Так вот, API - это набор команд, с помощью которых ваш пёсик вас понимает и делает то, что вам нужно. Это очень сильно упрощённо и для чайника, но суть понятна, думаю.

API это язык, регламентированный способ, общения одной компьютерной программы с другой для совместного исполнения какой-нибудь общей задачи, когда одна программа выполняют запросы другой. Application Programming Interface (API) - Интерфейс программирования приложений.

Вот какая примитивная аналогия для чайников родилась навскидку.

Представьте себе 5 иностранцев, разговаривающих на разных языках, которым нужно работать и жить вместе, скажем в России. Ни один из них не знает языка другого, при этом им нужно единой командой, по ролям, выполнить какую-то задачу, например накормить друг друга и обсудить вкус еды на русском языке. Для этого необходимо купить продукты, приготовить еду, накрыть на стол и за едой обсудить блюда. Чтобы они поняли друг друга и смогли найти продукты во внешнем мире, обучим их базовому набору русских слов. Представим что у нас есть:

1. Француз

2. Испанец

4. Англичанин

5. Итальянец

Распределим между ними роли для выполнения подзадач следующим образом

Покупка Еды: Француз и Испанец

Готовка Блюд: Испанец, Немец и Англичанин

Cервировка Стола: Англичанин и Итальянец

Трапеза и обсуждение вкуса Блюд: ВСЕ

Для того чтобы они смогли выполнить все эти задачи обучим каждого набору тех русских слов, который позволить им в сотрудничестве между собой и внешней средой выполнить все эти задачи. Смотрите картинку внизу.

Так вот. Группа наших иностранных друзей это группа компьютерных программ , которым нужно общаться между собой и со внешней средой.

Язык и Cлова, обозначающие продукты и элементарные действия , которые нужно произвести это API – стандарты по которым наши иностранные друзья общаются между собой на русском, чтобы выполнить все поставленные подзадачи.

API 1: Слова обозначающие Продукты и Где Купить
API 2: Слова обозначающие Блюда и Способы приготовления
API 3: Слова обозначающие Приборы и Действия с ними
API 4: Слова обозначающие Вкус и Оценку Еду

Может быть и сложнее, например, пусть API 2 это будет турецкий язык, API 3 это китайский язык, API 4 это хинди

Пример для чайников:

1. Есть розетка. За ней огромное количество техники скрывается. Но что бы ей пользоваться - надо иметь вилку с расстоянием между стержнями 3см и розетка отдаст 220в. Это и есть API интерфейс огромной системы электропроизводства.

2. А есть утюг. У него своя сложная система работы. Но что бы работать с розеткой, он соблюдает требования API - нужна вилка с расстоянием 3см и в ответ ждет 220вольт.

И всё. 2 системы независимы, они огромны и сложны. Но API делается, что бы максимально просто соединиться друг с другом.

API - application programming interface. Это некий набор функций, констант, классов и, возможно, других объектов, для взаимодействия с неким куском программы.

Думаю, что понятнее всего, будет описать на примере. Допустим, кто-то написал калькулятор, который вы хотите использовать в своей программе. К этому калькулятору надо как-то обращаться. Вот эти способы взаимодействия с калькулятором и будут называться API. Они же могут быть разными, и без их описания ничего сделать не получится. Может, у вас будет функция для записи числа в память, другая для выполнения действия, третья для получения результата. А может у вас будет одна функция, которая передаст два числа и код операции между ними, и сразу вернет ответ.

Такие описания составляются для всего. В операционной системе есть API, это набор функций, с помощью который создается программа: установить сетевое соединение, нарисовать окно, обработать нажатие кнопки. У какого-нибудь сервера API это набор функций, которые он выполняет. Браузер обращается к сайту википедии - он использует API, чтобы вернуть вам ответ по запросу.

Cистема классификации моторных масел API () была создана в 1969 году.По системе API установлены три эксплуатационные категории (три ряда) назначения и качества моторных масел:
S (Service) - состоит из категорий качества моторных масел для бензиновых двигателей, идущих в хронологическом порядке.
C (Commercial) - состоит из категорий качества и назначения масел для дизельных двигателей, идущих в хронологическом порядке.
EC (Energy Conserving) - энергосберегающие масла. Новый ряд высококачественных масел, состоящий из маловязких, легкотекущих масел, уменьшающих расход топлива по результатам тестов на бензиновых двигателях.

Для каждого нового класса присваивается дополнительная буква по алфавиту. Универсальные масла для бензиновых и для дизельных двигателей обозначаются двумя символами соответствующих категорий: первый символ является основным, а второй указывает на возможность применения этого масла для двигателя другого типа. Пример: API SM/CF.

Классы качества API для бензиновых моторов

Класс API SN – утвержден в 1 октября 2010 года.
Основное отличие API SN от предыдущих классификаций API в ограничении содержания фосфора для совместимости с современными системами нейтрализации выхлопных газов, а также комплексное энергосбережение. То есть, масла, классифицируемые по API SN, будут приблизительно соответствовать АСЕА С2, С3, С4, без поправки на высокотемпературную вязкость.

Класс API SM – утвержден 30 ноября 2004 года.
Моторные масла для современных бензиновых (многоклапанных, турбированных) двигателей. По сравнению с классом SL моторные масла, соответствующие требованиям API SM должны обладать более высокими показателями защиты от окисления и преждевременного износа деталей двигателя. Кроме того, повышены стандарты относительно свойств масла при низких температурах. Моторные масла этого класса могут быть сертифицированы по классу энергосбережения ILSAC
Моторные масла, соответствующие требованиям API SL, SM могут применяться в случаях, когда производителем автомобиля рекомендуется класс SJ или более ранние.

Класс API SL – моторные масла для двигателей машин, выпущенных после 2000 года.
В соответствии с требованиями производителей автомобилей, автомасла этого класса применяются в многоклапанных, турбированных моторах, работающих на обеднённых смесях топлива, соответствующих современным повышенным требованиям по экологии, а также энергосбережению. Автомасла, соответствующие требованиям API SL могут использоваться в случаях, когда автопроизводителем рекомендуется класс SJ или более ранние.

Класс API SJ – моторные масла для использования в бензиновых моторах начиная с 1996 года выпуска.
Данный класс описывает автомасла, которые используются в бензиновых двигателях, начиная с 1996 года выпуска. Моторные масла этого класса предназначены для использования в бензиновых моторах легковых и спортивных машин, микроавтобусов и легких грузовых машин, которые обслуживаются в соответствии с требованиями производителей автомобилей. SJ предусматривает такие же минимальные стандарты, как и SH, а также дополнительные требования к нагарообразованию и работе при низких температурах. Моторные масла, удовлетворяющие требованиям API SJ, могут применяться в тех случаях, когда производителем автомобиля рекомендуется класс SH или более ранние.

Класс API SH – моторные масла для бензиновых моторов начиная с 1994 года выпуска.
Класс принят в 1992 году для моторных масел, рекомендуемых с 1993 г. Этот класс характеризуется более высокими требованиями по сравнению с классом SG, и был разработан, как заменитель последнего, для улучшения антинагарных, противоокислительных, антиизносных свойств масел и повышенной защиты от коррозии. Моторные масла этого класса предназначены для использования в бензиновых моторах легковых машин, микроавтобусов и легких грузовых автомобилей, в соответствии с рекомендациями их производителей. Моторные масла данного класса тестировались в соответствии с требованиями Ассоциации производителей химической продукции (СМА). Моторные масла этого класса могут использоваться в тех случаях, когда производителем автомобиля рекомендуется класс SG или более ранний.

Класс API SG – моторные масла для бензиновых моторов начиная с 1989 года выпуска.
Предназначены для использования в бензиновых моторах легковых машин, микроавтобусов и легких грузовиков. Моторные масла этого класса обладают свойствами, обеспечивающими улучшенную защиту от нагара, окисления автомасла и износа мотора, в сравнении с предыдущими классами, а также содержат присадки, защищающие от ржавления и коррозии внутренних деталей двигателя. Моторные масла класса SG соответствуют требованиям к моторным маслам для дизельных моторов API CC и могут использоваться там, где рекомендуются классы SF, SE, SF/CC или же SE/CC.

Класс API SF - моторные масла для бензиновых моторов начиная с 1980 года выпуска (устаревший класс).
Эти моторные масла применялись в бензиновых моторах 1980-1989 годов выпуска, при условии наличия рекомендаций и инструкций производителя двигателя. Обеспечивают усиленную устойчивость к окислению, улучшенную защиту от износа деталей, в сравнении базовыми характеристиками автомасел SE, а также более надежную защиту от нагара, ржавления и коррозии. Моторные масла класса SF могли применяться, как заменители предыдущих классов SE, SD или SC.

Класс API SE - моторные масла бензиновых моторов выпуска с 1972 года (устаревший класс). Эти моторные масла применялись в бензиновых моторах моделей выпуска 1972-79 годов, а также некоторых моделях 1971 г. Дополнительная защита в сравнении с автомаслами SC и SD и могут использоваться, как заменители этих категорий.

Класс API SD - моторные масла для использования в бензиновых моторах с 1968 г. (устаревший класс). Автомасла этого класса использовались в бензиновых моторах легковых машин и некоторых грузовых выпуска 1968-70 годов, а также некоторых моделей 1971 г. и позднее. Улучшенная защита по сравнению с моторными маслами SC, применялись также исключительно при наличии рекомендации производителя двигателя.

Класс API SC - моторные масла для бензиновых моторов, начиная с 1964 г. выпуска (устаревший класс). Обычно применялись в моторах легковых машин и некоторых грузовиков выпуска 1964-1967 годов. Уменьшают высоко- и низкотемпературный нагар, износ, а также защищают от коррозии.

Класс API SB - моторные масла для маломощных бензиновых моторов (устаревший класс). Моторные масла 30-х годов 20-го века, обеспечивавших достаточно легкую защиту от износа и окисления, а также антикоррозийную защиту подшипников в моторах, которые эксплуатируются в легких нагрузочных режимах. Моторные масла этого класса могут применяться только, если они специально рекомендованы производителем двигателя.

Класс API SA - моторные масла для бензиновых и дизельных моторов. Устаревший класс масел для использования в старых моторах, работающих в таких условиях и режимах, при которых защита деталей с помощью присадок не нужна. Моторные масла этой класса могут применяться только, если они рекомендованы производителем двигателя.

Классы качества API для дизельных моторов

Класс API СJ-4 - действует с 1 октября 2006.
Данный класс разработан специально для тяжелонагруженных двигателей. Отвечает ключевым требованиям по нормам выбросов NOx и твердых частиц для двигателей 2007 года выпуска. На масла CJ-4 вводятся лимиты по некоторым показателям: зольность меньше чем 1,0 %, сера 0,4%, фосфор 0,12%.
Новая классификация вмещает требования более ранних категорий API CI-4 PLUS, CI-4, но несет значительные изменения требования в ответ на потребности новых двигателей, которые отвечают новым экологическим стандартам 2007 и более поздних моделей.

Класс API CI-4 (CI-4 PLUS) - новый эксплуатационный класс моторных масел для дизельных двигателей. По сравнению с API CI-4 повышены требования к удельному содержанию сажи, а также испаряемости и высокотемпературному окислению. При сертификации в данной классификации моторное масло должно тестироваться в семнадцати моторных тестах.

Класс API CI-4 - класс введен в 2002 году.
Эти моторные масла применяются в современных дизельных двигателях с различными видами впрыска и наддува. Моторное масло, соответствующее данному классу, должно содержать соответствующие моюще-диспергирующие присадки и имеет, в сравнении с классом CH-4, повышенную устойчивость к термическому окислению, а также более высокие диспергирующие свойства. Кроме того, такие автомасла обеспечивают существенное уменьшение угара моторного масла за счет снижения летучести и уменьшения испарения при рабочей температуре до 370°C, под воздействием газов. Усилены также требования относительно холодной прокачиваемости, увеличен ресурс зазоров, допусков и уплотнений мотора за счет улучшения текучести автомасла.
Класс API CI-4 введен в связи с появлением новых, более жестких требований по экологии и токсичности выхлопных газов, которые предъявляются к двигателям выпускаемым с 1 октября 2002 г.

Класс API CH-4 - действует с 1 декабря 1998 года.
Моторные масла данного класса применяются в четырехтактных дизельных двигателях, которые эксплуатируются в высокоскоростных режимах и соответствуют требованиям норм и стандартов по токсичности выхлопных газов, принятых в 1998 году.
Автомасла API CH-4 соответствуют достаточно жестким требованиям как американских, так и европейских производителей дизельных двигателей. Требования класса специально разработаны для использования в моторах, работающих на высококачественном топливе с удельным содержанием серы до 0,5%. При этом, в отличие от класса API CG-4, ресурс этих моторных масел менее чувствителен к использованию дизельного топлива с содержанием серы более 0,5%, что особенно актуально для стран Южной Америки, Азии, Африки.
Моторные масла API CH-4 соответствуют повышенным требованиям и должны содержать присадки, более эффективно предотвращающие износ клапанов и образование нагара на внутренних поверхностях. Могут применяться, как заменители моторных масел API CD, API CE, API CF-4 и API CG-4 в соответствии с рекомендациями производителя двигателя.

Класс API CG-4 - класс представлен в 1995 году.
Моторные масла этого класса рекомендуются для четырехтактных дизельных двигателей автобусов, грузовых машин и тягачей магистрального и немагистрального типа, которые эксплуатируются в режимах повышенных нагрузок, а также высокоскоростных режимах. Моторное масло API CG-4 подходит для двигателей, в которых используется высококачественное топливо с удельным содержанием серы не более 0,05%, а также в моторах, для которых не выдвигается особых требований к качеству топлива (удельное содержание серы может достигать 0,5%).
Автомасла, сертифицированные по классу API CG-4, должны более эффективно предотвращать износ внутренних деталей двигателя, образование нагара на внутренних поверхностях и поршнях, окисление, пенообразование, образование сажи (эти свойства особенно нужны для двигателей современных магистральных автобусов и тягачей).
Класс API CG-4 создан в связи с утверждением в США новых требований и стандартов по экологии и токсичности выхлопных газов (редакция 1994 года). Моторные масла этого класса могут применяться в двигателях, для которых рекомендуются классы API CD, API CE и API CF-4. Основной недостаток, ограничивающий массовое использование автомасел данного класса, например в восточной Европе и Азии, это существенная зависимость ресурса автомасла от качества используемого топлива.

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

Класс API CF-4 - моторные масла для использования в четырехтактных дизельных моторах, начиная с 1990 года выпуска.
Моторные масла данного класса могут использоваться в четырехтактных дизельных двигателях, условия эксплуатации которых связаны с высокоскоростными режимами. Для таких условий требования к качеству масел превышают возможности класса СЕ, поэтому моторные масла CF-4 могут использоваться вместо масел класса СЕ (при наличии соответствующих рекомендаций производителя двигателя).
Автомасла API CF-4 должны содержать соответствующие присадки, которые обеспечивают снижение угара автомасла, а также защиту от нагара в поршневой группе. Основное предназначение моторных масел данного класса – применение в дизельных двигателях сверхмощных тягачей и других автомобилей, которые используются для дальних поездок по автомагистралям.
Кроме того, таким моторным маслам иногда присваивается сдвоенный класс API CF-4/S. В таком случае, при условии наличия соответствующих рекомендаций производителя двигателя, эти автомасла могут применяться и в бензиновых двигателях.

Класс API CF (CF-2, CF-4) - моторные масла для дизельных двигателей с непрямым впрыском. Классы введены начиная с 1990-го и по 1994-й года. Цифра через дефис означает двух- или четырехтактный двигатель.
Класс CF описывает моторные масла рекомендованные к применению в дизельных двигателях с непрямым впрыском, а также других видах дизельных двигателей, которые работают на топливе различного качества, в том числе и с повышенным содержанием серы (например, больше 0,5% от общей массы).
Моторные масла, сертифицированные по классу CF, содержат присадки, способствующие более эффективному предотвращению отложений на поршне, износа и коррозии медных (с содержанием меди) подшипников, что имеет большое значение для двигателей этих видов, и могут прокачиваться обычным способом, а также с помощью турбонагнетателя или компрессора. Моторные масла этого класса могут использоваться там, где рекомендуется класс качества CD.

Класс API СЕ - моторные масла для использования в дизельных моторах, начиная с 1983 года выпуска (устаревший класс).
Автомасла данного класса предназначались для использования в некоторых сверхмощных турбированных моторах, характеризующихся существенно повышенной рабочей компрессией. Применение таких масел допускалось для двигателей как с низкой, так и с высокой частотой вращения вала.
Моторные масла API СЕ рекомендовались для низко- и высокооборотистых дизельных двигателей, выпущенных, начиная с 1983 года, которые эксплуатировались в режимах повышенной нагрузки. При условии наличия соответствующих рекомендаций производителя двигателя, эти автомасла могли быть использованы также в моторах, для которых рекомендовались моторные масла класса CD.

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

Класс API CD - моторные масла для дизельных двигателей повышенной мощности, которые использовались в сельскохозяйственной технике (устаревший класс). Класс введен в 1955 году для обычного использования в некоторых дизельных моторах, как атмосферных, так и турбированных, с увеличенной компрессией в цилиндрах, где крайне важна эффективная защита от нагара и износа. Моторные масла этого класса могли использоваться в случаях, когда производителем двигателя не выдвигались дополнительные требования к качеству топлива (включая топливо с повышенным содержанием серы).
Автомасла API CD должны были, по сравнению с предыдущими классами, обеспечивать повышенную защиту от коррозии подшипников и высокотемпературного нагара в дизельных моторах. Нередко моторные масла этого класса называли «Caterpillar серия 3», благодаря тому, что они соответствовали требованиям сертификации Superior Lubricants (Series 3), разработанной тракторной компанией Катерпиллар.

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

Класс API СВ - моторные масла для дизельных двигателей, работающих со средней нагрузкой (устаревший класс).
Класс утвержден в 1949 г., как эволюционное развитие класса СА при использовании топлива с повышенным содержанием серы без особых требований к качеству. Автомасла API СВ предназначались также для использования в моторах с наддувом, которые эксплуатировались в легком и умеренном режимах. Часто этот класс называли «Моторные масла «Приложение 1», тем самым, подчеркивая соответствие военному предписанию MIL-L-2104A Приложение 1.

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

В этом сообщении я постарался собрать информацию, которая может пригодиться тестировщикам, желающим узнать, что такое API. Надеюсь что-то полезное для себя найдут и опытные в тестировании API люди. Ну или хотя бы помогут найти ошибки в моей статье:)
Что такое API

API (Application Programming Interface) - набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах (Wikipedia).

Своими словами, API предоставляет нам возможность использовать чужие наработки в своих целях. Впервые я столкнулся с API на примере Windows API. Это набор функций, которые может использовать любое приложение, запущенное на данной ОС. К примеру, оно может использовать стандартные функции для отрисовки интерфейса.

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

На сайте https://dev.hh.ru/ (а точнее, https://github.com/hhru/api/blob/master/docs/general.md) вы можете найти описание того, как клиенты и сервисы HeadHunter API взаимодействуют между собой. Например, цитата с сайта:

  • Всё API работает по протоколу HTTPS.
  • Авторизация осуществляется по протоколу OAuth2.
  • Все данные доступны только в формате JSON.
  • Базовый URL — https://api.hh.ru/
  • Даты форматируются в соответствии с ISO 8601 : YYYY-MM-DDThh:mm:ss±hhmm
Вы можете почитать HH API - это хороший пример пользовательской документации.

Форматы передачи данных

Существует множество форматов данных, с помощью которых пользователи взаимодействуют с API. Например, широко известный XML. Или JSON - легковесный и несложный формат, который выглядит как:

{ "id": "0001", "type": "donut", "name": "Cake", "image": { "url": "images/0001.jpg", "width": 200, "height": 200 } } По ссылкам ниже вы можете посмотреть ответы, приходящие от MediaWikiAPI , в разных форматах:

JSON: https://en.wikipedia.org/w/api.php?action=query&titles=Albert%20Einstein&prop=info&format=jsonfm
XML: https://en.wikipedia.org/w/api.php?action=query&titles=Albert%20Einstein&prop=info&format=xmlfm
PHP: https://en.wikipedia.org/w/api.php?action=query&titles=Albert%20Einstein&prop=info&format=php (осторожно, произойдет с качивание файла)

HTTP глаголы

Обычно при обращении к веб API используют ся запросы HTTP. Поэтому нужно хотя бы коротко сказать о стандартных методах, которые могут содержаться в HTTP запросе. Эти методы также называют HTTP глаголами:

  • GET. Наверное, самый популярный тип запроса. Используется для получения или чтения данных.
  • PUT. Обычно и спользуется для обновления ресурса.
  • POST. Обычно используется для создания нового ресурса.
  • DELETE. Удаляет данные.
  • И другие
Если мы хотим получить информацию о ресурсе, URI которого http://www.example.com/customers/12345 , мы можем послать запрос:
GET http://www.example.com/customers/12345

Если мы хотим обновить ресурс - мы можем послать PUT-запрос:
PUT http://www.example.com/customers/12345/orders/98765

Обычные GET запросы способен посылать веб-браузер. Для посылки других типов запросов могут потребоваться скриптовые языки или специальные инструменты (об этом будет ниже).

О HTTP методах можно подробнее почитать на W iki .

HTTP к оды ответов

Сервер может посылать разные коды в ответ на запросы пользователей. Это могут быть коды ошибок или просто коды, информирующие пользователей о состоянии сервера. Подробное описание можно найти, опять же, на вики .

Наиболее известные коды - 4xx (проблемы на стороне клиента) и 5xx (проблемы на стороне сервера). О том, какие коды возвращать в той или иной ситуации, решают разработчики самих API. Например, API сайта Одноклассники возвращает коды, описание которых можно найти на странице https://apiok.ru/wiki/pages/viewpage.action?pageId=77824003 .

Кроме того, советую послушать песню Реквест-респонс - просто и понятно о кодах, возвращаемых в HTTP запросах (осторожно, репчик:)).


REST API

REST API - э то идеология построения API, которая расшифровывается как Representational State Transfer API. Она основывается на следующих принципах , сформулированных ее создателем, Роем Филдингом :

  1. Клиент-серверная архитектура
  2. Stateless сервер
  3. Кешируемость
  4. Многослойная структура
  5. Единый интерфейс
  6. Код по требованию
Не буду углубляться в детали, желающим почитать по теме могу посоветовать