
2024-05-10
API создание, использование, REST, RPC PHP - что?
2023-07-31
API, REST, RPC и еще куча куча куча страшных слов, которые так любят спрашивать на собеседованиях. Что же они все означают и какое вообще отношение имеют к API... И что такое API?...
Давайте представим, что у нас есть несколько сайтов. Один сайт занимается продажами - это интернет-магазин. Второй сайт - это наша система учета на складе. Третий сайт - это сайт для обработки заказов и ведения клиентской базы. Итак сейчас у нас работает порядка 40 человек, которые изо дня в день заполняют Excel и отправляют друг другу голубиной почтой по email, чтобы загрузить данные с одного сайта на другой. Часто делают это даже несколько раз в день. И так вся согалсованность и валидность данных вращается вокруг тёти Дуси с 7 подъезда, которая каждый день заполняет эти эксельки из других экселек...
И в один прекрасный момент тётя Дуся косякнула на полтора миллиона рублей просто перепутав эксельки для разных систем. Как же нам теперь решать задачу передачи данных между системами?... Тётя Дуся ведь теперь сидит глотает валидол и боится выходить в офис...
И вот нам спускают чудесную задачу по интеграции всех сервисов между собой и настройки обмена данными между собой - и делается это всё естественно по API.
Интеграция - это готовый результат разработки ПО, которое позволяет двум сайтам обмениваться информацией.
API - Программный интерфейс приложения - набор функций, к которым можно обратиться с другого сайта по http / https протоколу и получить данные или выполнить какое-то действие на сайте.
Соответственно, чтобы сайты удобно взаимодействовали между собой нужен удобный протокол передачи данных... А данные в каком формате?... Тоже вопрос... Может быть JSON или XML или CSV?...
REST - это подход к проектированию API интерфейсов, основанный на принципах HTTP протокола. Он делает акцент на простейших форматах данных, применении URL для идентификации ресурсов и использовании возможностей HTTP для управления кэшем, аутентификации и согласовании типа контента. Спроектированный согласно REST подходу API называется RESTful.
RPC ( Remote Procedure Call ) - класс технологий, позволяющих прогарммам вызывать функции или процедуры в другом представлении или в адресном пространстве. Два самых часто используемых формата - это XML и JSON.
Если совсем коротко - то REST отличается от RPC тем, что первый больше настаивает на использовании HTTP возможностей в то время как второй на этом не настаивает. Например:
Другими словами чтобы называть своё API RESTful - вы должны применять более жесткие нормы и строже придерживаться правил http протокола, нежели, чем в RPC.
Лично мне больше нравится RPC подход, так как он более нативно понятен для разработчиков, которые пользуются и интегрируются с API. Я не люблю, когда вендор API предоставляет API в котором надо формировать кучу заголовков, для каждого метода писать какие-то отдельные классы в то время как с RPC можно все сделать быстро, пусть и не так красиво местами ( и то не факт ). Поэтому... Мне больше нравится RPC.
API - это тот же самой набор контроллеров и методов контроллеров, которые могут использоваться сторонними сервисами без фронтэнд части.
Читайте также: как создать своё API на Symfony 6
Ура! Я наконец-то дописал статью как собирать собственные бандлы на Symfony 6!!!
Статья про EasyAdmin всё ещё в процессе )))
Не, ну мне же надо на чем-то тестировать твиттер локальный...
Я тут еще много полезного буду выкладывать, так что заходите обязательно почитать.
Сайтик пока что в разработке - это далеко не окончательная версия - по сути это то что удалось слепить за 8 часов.
Комментарии