Веб-API объясняется продажей товаров из вашей фермы

1656670234 veb api obyasnyaetsya prodazhej tovarov iz vashej fermy

Кевин Кононенко

1*iYNkAqKLBM9qw2j1TdO6SA

Если вы находились на фермерском рынке или на стенде фермы, вы можете понять концепцию интерфейса программирования прикладных программ (API).

Если вы новичок в веб-разработке, вы, вероятно, часто слышите термин API.

«Я не могу дождаться, пока эта компания выпустит свой публичный API!»

«API этой компании – это запутанная каша».

«Есть ли конечная точка для этих данных в их API?»

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

Итак, я хотел найти способ объяснить, как веб-API работают как единое целое, чтобы когда вы вникнете в мелкие технические детали, вы поняли, как это все сочетается.

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

0*JS5g1_gRC72cQhQA

Чтобы понять этот учебник вам просто нужно понять разницу между кодом на стороне сервера (back-end) и кодом на стороне клиента (front-end). Вы можете прочитать начало моего руководства по GET/POST, если вы еще не знакомы с сервером и клиентом.

Разница между GUI и API

Начнём со знакомого способа пользования Интернетом. Веб-браузер, как и Chrome, является примером графического пользовательского интерфейса (GUI). Как пользователь, вы можете взаимодействовать с удобным инструментом для выполнения задач, таких как бронирование авиабилетов или поиск в Google.

Графический интерфейс позволяет посетителям веб-сайта взаимодействовать с кодом на сервере контролируемым и структурированным способом.

Как владелец фермы, это сродни стенду фермы, который вы устанавливаете на своей территории, или на вашем лотке на фермерском рынке.

0*uI8OpnP5gTeq9XLB

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

Это способ, которым клиенты «взаимодействуют» с вашей тяжелой работой. Им не нужно понимать ни процесс посадки, ни используемое оборудование, ни обработку. Они просто видят конечный продукт.

0*1CKu4-YZRsxGAB09

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

Что такое API?

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

Это новый способ для потребителей «ощутить» ваш продукт. Конечно, они могут не знать, чьи яйца в их омлете, когда заказывают завтрак в местной закусочной, но они все равно «используют» ваш продукт.

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

0*9KQ-8Us5U8PvR90e

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

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

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

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

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

  • Инструменты картографирования
  • Обработка платежей
  • Данные о погоде

К чему можно получить доступ через API?

Допустим, вы хотите начать продавать яйца со своей фермы дистрибьюторам и ресторанам. Вам нужно будет настроить ряд процессов на своей ферме, чтобы поддерживать это:

  1. Массовое хранение яиц
  2. Учет ежемесячного выставления счетов клиентам
  3. Зона доставки для погрузки яиц на грузовики.

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

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

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

0*gtKR8rDGBgGewhIr

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

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

Отслеживание индивидуального вызова API

Предположим, вы решили создать конечная точка для яиц на ферме. Местный ресторан хочет купить 1000 яиц, чтобы удовлетворить 1000 заказов омлета, которые он получает еженедельно.

0*c2DAEyegIUTrwM_W

Обратите внимание, как наши вызов API на самом деле начинается с запроса пользователя? Исходя из описания, это может показаться несколько неинтуитивным.

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

В этом случае триггером является около 1000 яиц. Руководитель ресторана уже установил отношения с фермой – вашей фермой. Кроме того, ваша ферма уже наладила процесс доставки 1000 яиц за раз.

Итак, поступает заказ на 1000 яиц, и ваша ферма дает ответ: 1000 яиц.

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

0*4QZDXA5t95N7vboE

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

0*SkAzRcrC2zXcNLy9
  1. Какой-то пользователь на другом сайте использует вашу картографическую программу и выполняет действие, для которого нужны данные с вашего сервера.
  2. Разработчик на другом сайте уже написал код, который создаст запрос к вашему API на основе действий этого пользователя
  3. The вызов API поступает, и ваш сервер доставляет a ответ.

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

0*0wWqB2oCcd7-WNuO

Примеры GET и POST

Вот краткая информация о GET и POST, если вам нужно прочесть.

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

Но как насчет запросов POST? В реальном примере Facebook API позволяет пользователям других приложений создавать сообщения, а затем это приложение может отправлять эти сообщения непосредственно в Facebook для немедленного опубликования.

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

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

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

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

0*2OLXd7qM5P3DMsaI

Теперь как пользователь/клиент может инициировать запрос POST? Ну, представьте, что ресторан немедленно посылает вам платеж всякий раз, когда кто-то заказывает еду с вашей фермы. Если бы человек заказал омлет за 5 долларов, а 2 доллара его стоимости были получены из яиц с вашей фермы, ресторан немедленно переслал бы 2 доллара на ваш банковский счет. Будь это веб-программа, такой уровень связи мог бы работать, но поскольку это пример фермерства, это было бы немного непрактично.

0*6KCimIOx44uBhIYm

Разница между фермой и веб-приложением

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

Просто по логистике реального мира… мы не можем надеяться соответствовать мгновенной природе большинства вызовов API, даже если шаги в целом одинаковы.

Давайте рассмотрим пример запроса GET из предыдущего урока.

0*Ln76YuGduAcDlTqg

Вот что это значит с точки зрения веб-разработки.

  1. Пользователь выполняет действие, запускающее запрос
  2. Код на стороне сервера совершает вызов API к конечной точке
  3. API предоставляет конкретную информацию

Но если провести аналогию с реальной фермой:

  1. Пользователь заказывает омлет
  2. Ресторан отправляет грузовик, чтобы забрать яйца на вашу ферму.
  3. Яйца доставляются в ресторан и подаются в омлете.

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

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

Что означает «Открыть свой API»?

Итак, давайте вернемся к нашему первоначальному вопросу: что это значит, когда компания «открывает свой API»?

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

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

Нравится это руководство?

Если вам понравился этот учебник, вам, вероятно, понравятся остальные мои визуализированные пособия по темам веб-разработки. Читайте дальше в блоге CodeAnalogies или зарегистрируйтесь, чтобы получить новейшие пособия:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *