«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как API работают под капотом

Как API работают под капотом

Опубликовано 31 августа 2024 г.
Просматривать:647

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

1. Клиент делает запрос

Представьте, что вы создаете веб-приложение, отображающее данные о погоде. Когда пользователь нажимает кнопку, чтобы увидеть текущую погоду, ваше приложение отправляет запрос на конечную точку API, например https://api.weather.com/current.

Что здесь происходит?

  • HTTP-запрос: клиент (ваше приложение) создает HTTP-запрос, указывая метод (например, GET, POST), URL-адрес конечной точки и все необходимые заголовки (например, Authorization или Content-Type).
  • Полезная нагрузка: если это запрос POST, он может включать в себя полезную нагрузку, например объект JSON с параметрами (например, { "city": "New York" }).

Затем этот HTTP-запрос отправляется через Интернет на сервер, на котором размещен API.

How APIs Work Under the Hood

2. Поиск DNS: поиск сервера

Прежде чем ваш запрос достигнет сервера, он должен сначала знать, куда идти. Здесь на помощь приходит система доменных имен (DNS).

Поиск DNS: браузер или клиентское приложение берет домен (например, api.weather.com) и запрашивает DNS-сервер, чтобы найти соответствующий IP-адрес. Этот IP-адрес является фактическим местоположением сервера в Интернете.

How APIs Work Under the Hood

3. Установление соединения

Теперь, когда клиент знает, где находится сервер, ему необходимо установить соединение.

TCP Handshake: клиент и сервер устанавливают соединение с использованием протокола управления передачей (TCP). Это включает в себя трехэтапный процесс, известный как TCP-квитирование:

  1. SYN: клиент отправляет серверу запрос синхронизации (SYN).
  2. SYN-ACK: сервер подтверждает этот запрос и отвечает SYN-ACK.
  3. ACK: клиент подтверждает ответ сервера, завершая рукопожатие.

После завершения рукопожатия соединение устанавливается и можно обмениваться данными.

How APIs Work Under the Hood

4. Сервер получает запрос

При установке соединения HTTP-запрос передается на сервер.

Обработка на стороне сервера:

  • Маршрутизация: сервер получает запрос и направляет его соответствующему обработчику на основе конечной точки (например, /current в https://api.weather.com/current). Это может включать сопоставление шаблона URL-адреса с конкретным контроллером или функцией.
  • Логика контроллера: контроллер сервера обрабатывает запрос. Это может включать в себя запрос к базе данных для получения данных, выполнение вычислений или преобразований данных или вызов других внутренних служб для получения дополнительной информации.
  • Аутентификация и авторизация: если конечная точка требует аутентификации, сервер проверяет учетные данные клиента. Например, если запрос включает ключ API или токен доступа, сервер проверяет его достоверность и гарантирует, что клиент имеет необходимые разрешения для доступа к запрошенному ресурсу.

5. Подготовка ответа

После обработки запроса сервер готовит ответ.

Объект ответа: сервер создает объект ответа HTTP, включая:

  • Код состояния: указывает результат запроса (например, 200 ОК, 404 не найдено, 500 внутренняя ошибка сервера).
  • Заголовки: укажите метаданные об ответе, например Content-Type (например, application/json) или Set-Cookie.
  • Тело: содержит данные, запрошенные клиентом, часто в формате JSON (например, { "temperature": "72°F", "condition": "Sunny" }).

6. Отправка ответа обратно

Сервер отправляет HTTP-ответ обратно клиенту через установленное соединение.

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

How APIs Work Under the Hood

7. Клиент получает и обрабатывает ответ

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

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

Обработка ошибок: если что-то пошло не так (например, сервер вернул код состояния 404 или 500), клиент может показать сообщение об ошибке или повторить запрос.

8. Завершение соединения

После завершения обмена данными соединение между клиентом и сервером закрывается.

Завершение TCP-соединения: аналогично рукопожатию, соединение завершается с помощью четырехэтапного процесса:

  1. FIN: клиент отправляет запрос на завершение (FIN).
  2. ACK: сервер подтверждает запрос FIN.
  3. FIN: сервер отправляет собственный запрос FIN.
  4. ACK: клиент подтверждает запрос FIN сервера.

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

How APIs Work Under the Hood

Устранение неполадок и распространенные проблемы

Хотя процесс запроса-ответа API может показаться простым, может возникнуть несколько распространенных проблем, таких как:

  • Сетевые ошибки: тайм-ауты соединения, потерянные пакеты или другие проблемы, связанные с сетью, могут помешать запросу достичь сервера или ответу дойти до клиента.
  • Ошибки аутентификации/авторизации: неправильные или просроченные ключи API, токены или недостаточные разрешения могут привести к ошибкам аутентификации или авторизации.
  • Ошибки на стороне сервера: на сервере могут возникнуть такие проблемы, как сбои базы данных, недоступность ресурсов или ошибки в логике на стороне сервера, что приводит к появлению кодов состояния 5xx.
  • Ошибки на стороне клиента: клиент может делать недопустимые запросы, например предоставлять неверные параметры или пытаться получить доступ к несуществующим ресурсам, что приводит к появлению кодов состояния 4xx.

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

Заключение

Понимание того, как работает API, поможет вам оценить сложности, связанные даже с простым HTTP-запросом. От DNS-запросов до TCP-квитирования, обработки на стороне сервера и обработки на стороне клиента — каждый раз, когда вы достигаете конечной точки API, происходит множество событий.

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

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/shanu001x/how-apis-work-under-the-hood-68m?1. В случае нарушения авторских прав свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3