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

Большинство архитектур можно разделить на две категории: SOAP и REST. Долгое время они доминировали на рынке API. Дизайнеры часто думали, что вы ориентированы либо на RESTful, либо на SOAP; это мышление изменилось с одним значительным событием. В 2007 году гигант социальных сетей Facebook выпустил технический документ с подробным описанием системы внутренней архитектуры, на которой работает большая часть их системы, и это ознаменовало рождение «Thrift».

«Thrift» - это программная библиотека и набор инструментов для генерации кода, разработанные в Facebook для ускорения разработки и внедрения эффективных и масштабируемых серверных сервисов.

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

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

Компания Thrift позаботится обо всех сложных межъязыковых взаимодействиях в сетевой среде. Ключевые предпосылки для правильной работы:

  1. Типы: во всех языках программирования должна существовать общая система типов.
  2. Транспорт: каждый язык должен иметь общий интерфейс для двунаправленной передачи необработанных данных.
  3. Протокол: Типы данных должны иметь какой-то способ использования транспортного уровня для кодирования и декодирования самих себя.
  4. Управление версиями: для надежных сервисов задействованные типы данных должны обеспечивать механизм для управления версиями. В частности, должна быть возможность добавлять или удалять поля в объекте или изменять список аргументов функции без прерывания обслуживания (или, что еще хуже, с неприятными ошибками сегментации).
  5. Процессор: наконец, мы генерируем код, способный обрабатывать потоки данных для выполнения удаленных вызовов процедур.

Преимущества и недостатки бережливости:

Хотя и REST, и SOAP - прекрасные архитектуры, они ограничены в языках, на которых говорят; Функции Thrift в двоичном формате и имеют поддержку распространенных языков, таких как C ++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C #, Cocoa, JavaScript, Node.js, Smalltalk, OCaml и Delphi и других. Thrift - это открытый исходный код, то есть он контролируется, изменяется и отслеживается многими группами, что делает его более безопасным и актуальным.

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

В настоящее время я работаю над проектом, реализующим экономичный API для связи между службами PHP, Java и Node.Js. Мы добились значительного увеличения производительности за счет использования двоичной сериализации для обработки данных, и результаты потрясающие.

Если вы решили начать с бережливости. Посетите https://thrift.apache.org/.

Удачного обучения!

ссылка: https://thrift.apache.org/static/files/thrift-20070401.pdf