Стать разработчиком сложно, потому что это не только проверяет ваш мозг и знания программирования, но и проверяет вашу личность. Бывают дни, когда вы получаете это, и дни, когда вы просто этого не делаете и спрашиваете себя: «Достаточно ли я умен, чтобы заниматься этим? Мне, наверное, следует просто сдаться ». Мы все были там, и вы лжете, если говорите, что нет.

В свете моих собственных прошлых проблем, связанных с невозможностью найти ресурсы, объясняющие эти вещи на простом английском языке, я объединился с опытным разработчиком iOS Джоном Мартином (@martinsoft), чтобы представить вам серию статей WTF, в которых обсуждаются темы. что, возможно, вы просто притворялись, что знаете, чтобы обойтись.

Первым в этой серии является Интерфейс прикладного программирования, также известный как API.

A: Выражаясь вашими упрощенными словами, wtf - это API?

J: Начнем со слова интерфейс. Интерфейс - это часть программного обеспечения, которое предоставляет приложение или система, чтобы другие «вещи» могли каким-либо образом взаимодействовать с ними:

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

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

API-интерфейсы используются повсеместно при разработке программного обеспечения:

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

A: Какие преимущества мы получаем от API?

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

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

A: Какие проблемы это вызвало бы, если бы API не существовало? Зачем нам НУЖНЫ API?

J: Без API разработка программного обеспечения стала бы практически невозможной:

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

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

Без какого-либо API карт (например, Google Maps) вам пришлось бы:

  • создать свою собственную картографическую платформу
  • предоставить все картографические данные
  • выяснить, как нарисовать карту
  • выяснить, как найти часть карты, которая соответствует текущему местоположению
  • … И многое другое 😅

С помощью картографического API вы получаете всю эту функциональность «бесплатно» 🎉.

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

A: Как вы порекомендуете новому разработчику познакомиться с API?

J: Для веб-API первым шагом является знакомство с веб-технологиями и концепциями. Вот некоторые из ключевых:

HTTP

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

«Конечные точки»

  • Это термин, используемый для различных URL-адресов, составляющих API.
  • например: http: // myserver / customers может быть конечной точкой управления клиентами API.
  • Чтобы использовать веб-API, разработчик пишет код для отправки HTTP-запроса на конечную точку, размещенную на каком-либо сервере, а затем предпринимает действия на основе полученного ответа.

JSON

  • Чтобы упростить их использование (и отладку), данные, отправляемые в HTTP-запросе / ответе, обычно кодируются в форме, понятной как машинам, так и разработчикам.
  • Обычно это JSON, потому что он прост в использовании и широко поддерживается. (Иногда также может использоваться XML).

ОТДЫХ

  • REST - это стиль веб-API, который использует тип («метод») HTTP-запроса для определения операции, которую следует выполнить.
  • Например. «клиентская» конечная точка может поддерживать типы HTTP-запроса GET (выборка клиента), PUT (создание / обновление) и DELETE.

Когда вы освоитесь с этими концепциями, вы можете познакомиться с конкретным API, начав с документации, а затем поэкспериментируя с ним либо с помощью кода / в браузере /, либо с помощью чего-то вроде Postman для отправки запросов к API. и посмотрим, что вернется.

TL;DR

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

Вы можете найти Джона Мартина в своем Instagram на @martinsoft и хостинг Meet Up and Code.

Вы можете найти меня в чиллине на @falkyou.