79997296

API подобны пользовательским интерфейсам, с той лишь разницей, что пользователь-это машина или программное обеспечение. Давайте разберемся в подходе API-first design и почему имеет смысл следовать ему. Мы также уделим некоторое внимание JavaScript и его популярности, а затем, наконец, обсудим самые популярные фреймворки JavaScript для создания API и микросервисов.

API-первый подход

Мы все слышали термин, называемый API first design или просто API. На самом деле термин API first design стал популярным после того, как индустрия начала упоминать термин cloud-native application. Через некоторое время после разработки монолитного приложения программисты начали разбивать эти приложения на микрослужбы.

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

Помните: API-это бизнес-драйверы, поэтому разрабатывайте их в начале разработки системы.

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

  • API-это первый пользовательский интерфейс нашего приложения.
  • Сначала идет API, а затем приложение.
  • API описан (и, возможно, даже самоописателен).

Существует множество компаний, использующих API first подходы, такие как Twillio, NETFLIX, Stripe, Algolia, SendGrid, Etsy, Adobe , Amazonи многие другие. Amazon была одной из первых компаний, которая проинструктировала своих сотрудников использовать этот подход. Важность этого подхода можно понять на примере случая, когда Джефф Безос(генеральный директор Amazon) издал мандат под названием Bezos Mandate(где-то в 2002 году) с предупреждением, что любой, кто не будет следовать этому процессу, будет уволен.

Преимущества подхода API-first

Много! Вот некоторые из них.

  • Многоразовое/составное предприятие
  • Позволяет параллельную разработку
  • Снижает общую стоимость в течение всего срока службы проекта.
  • Снижает риск сбоев
  • Более быстрый рост
  • Свобода от ограничений

Теперь давайте рассмотрим один из мощных языков Интернета, который помогает нам реализовать вышеописанный подход.

JavaScript: Язык интернета

JavaScript-один из самых важных языков сегодняшнего и завтрашнего дня.

JavaScript-это высокоуровневый интерпретируемый скриптовый язык на стороне клиента. Он используется для того, чтобы сделать веб-страницы более интерактивными. Это позволяет нам реализовывать сложные и красивые проекты. JavaScript-это объектно-ориентированный скриптовый язык, который поддерживает инкапсуляцию, полиморфизм и в некоторой степени наследование. Кроме того, он не требует компиляции, в отличие от C, C++ и Java. JavaScript может выполняться как в браузере, так и на сервере и любом устройстве с JavaScript-движком.

Следует отметить, что JavaScript не имеет ничего общего с Java. Тогда возникает вопрос, почему это называется JavaScript? На самом деле, когда JavaScript был первоначально выпущен, он назывался Mocha; позже он был переименован в live script, а затем в JavaScript, когда Netscape и SUN заключили лицензионное соглашение. JavaScript используется при разработке практически всех типов веб-продуктов и приложений, таких как умные часы, игры, веб-сайты, мобильные и веб-приложения. Некоторые из самых популярных веб-сайтов, таких как Google, Facebook, Netflix, Amazon, используют JavaScript для создания своих продуктов.

Ограничивается ли она клиентской стороной?

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

Это не конец возможностей JavaScript. Помимо использования в качестве клиентской и серверной стороны, он также может быть использован для разработки приложения с одной кодовой базой и запуска на мобильном устройстве(Android, iOS) и в Интернете. Примером такой структуры является ReactJS.

Популярность JavaScript

JavaScript, возможно, является одним из самых важных языков сегодня. Появление Интернета привело к появлению JavaScript там, где он никогда не предполагался. В настоящее время у нас есть более 100 языков программирования, и каждый год вводятся новые языки. Среди них несколько мощных языков приносят быстрые изменения на рынке, и JavaScript определенно является одним из них. Он всегда был в списке популярных языков программирования. Согласно StackOverflow, JavaScript был самым популярным и часто используемым языком программирования.

Вы знаете? Почти 70% профессиональных разработчиков, которые ответили на опрос 2020 Stack Overflow, закодированы на JavaScript. Теперь давайте рассмотрим некоторые из самых популярных JavaScript-фреймворков для построения API и микросервисов.

1.Hapi

Hapi-это простой, безопасный и открытый javascript-фреймворк. Он используется для создания мощных, масштабируемых приложений с минимальными накладными расходами. Он был первоначально разработан для обработки шкалы черной пятницы Walmart, но теперь Hapi продолжает оставаться проверенным выбором для корпоративных потребностей. Такие компании, как Beats Music, Vrbo, Conde Nast, AuthO, Brave и многие другие, используют и удовлетворяются Hapi. Бесплатная поддержка всегда доступна на GitHub. Однако для более быстрого реагирования присоединяйтесь к каналу Slack – именно там болтаются многие члены сообщества и помогают друг другу.

2.Resify

Restify оптимизирован для создания семантически корректных веб-сервисов RESTful, готовых к массовому использованию в производстве. Когда он говорит семантически правильно, это означает, что вы остаетесь верны спецификации, которая была одной из главных целей команды Restify project. Он оптимизируется для самоанализа и производительности и используется в большинстве крупнейших Node.js развертывание. Одна из самых крутых особенностей Restify заключается в том, что он автоматически создает зонды DTrace для вас, когда вы добавляете новый маршрут/обработчик. На самом деле есть три отдельных клиента, поставляемых в Restify:

  • JsonClient: отправляет и ожидает приложение/json
  • StringClient: отправляет запрос в кодировке URL и ожидает текст/обычный
  • HttpClient: тонкая обертка над библиотеками HTTP/HTTPS узла

Подробное руководство по разработке можно найти здесь. Restify используется некоторыми из самых уважаемых компаний отрасли, такими как Netflix, Joyent, Pinterest, для питания некоторых из крупнейших развертываний.

3.ExpressJS

ExpressJS-проект ФондаOpenJS . Благодаря своей надежности, многие популярные фреймворки(такие как Перья, Кракен, Паруса, Воздушные змеи, NestJS и т. Д.) Основаны на Express. Это минимальный и гибкий node.js основанная на фреймворке веб-приложений, которая обеспечивает надежный набор функций для веб-и мобильных приложений. Так как он обеспечивает слой поверх node.js, мы можем эффективно получить доступ к функциям JavaScript. Он подходит для написания приложений с серверным рендерингом, поскольку поддерживает множество шаблонных движков (таких как pug и handlebars). Для разработки API он содержит промежуточные обработчики и множество методов службы / утилиты HTTP.

4.SailsJS

SailsJS-это MVC-фреймворк, созданный компанией Sails со штаб-квартирой в Остине, штат Техас. Он был разработан Майком Макнилом, чтобы помочь своей команде в создании масштабируемого Node.js проекты для стартапов и корпоративных клиентов. С момента своего выпуска в 2012 году Sails стал одним из наиболее широко используемых фреймворков веб-приложений во всем мире. Это легкий вес, который сидит поверх Express. Он совместим с любым интерфейсом: Angular, React, iOS, Android. Паруса утверждают, что интегрируются с любой базой данных через свой мощный ORM под названием Waterline. Он использует Express для обработки HTTP - запросов и сокета обертывания.io для управления WebSockets.

5.Action Hero

Actionhero-это мультитранспортный API-сервер с интегрированными кластерными возможностями и отложенными задачами. Цель Actionhero-создать простой в использовании инструментарий для создания многоразовых и масштабируемых API для HTTP, WebSockets и многого другого. Он был построен с нуля, чтобы включать в себя все функции, которые мы ожидаем от современного API-фреймворка. Тип рабочей нагрузки Actionhero отлично справляется с созданием и потреблением API-интерфейсов, хранением и извлечением данных из баз данных, изменением файлов и другими подобными заданиями. Actionhero имеет 5 ключевых концепций, составляющих каждое приложение: Действия, Задачи, Инициализаторы, Чати Серверы.

6.LoopBack

LoopBack-это очень расширяемая программа с открытым исходным кодом Node.js и TypeScript framework на основе Express. Это позволяет нам быстро создавать API и микросервисы, состоящие из бэкенд-систем, таких как базы данных и SOAP или REST-сервисы. Это новая, улучшенная модель программирования с внедрением зависимостей и новыми концепциями, такими как компоненты, Миксины, репозитории и т. Д., Которые Делают ее наиболее расширяемой. LoopBack позволяет создавать интерфейс GraphQL для любого REST API с помощью OpenAPI-to-GraphQL. Мы можем начать работу с Loopback в кратчайшие сроки, просто следуя его шагам в руководстве по началуработы . Их документация классифицируется на основе четырех квадрантов, и это,

  • Ориентированные на обучение: Учебные пособия предоставляют практические уроки, на которых пользователи могут изучить фреймворк на практике.
  • Проблемно-ориентированные: Практические руководства содержат рецепты решения конкретных задач, с которыми вы можете столкнуться при построении проекта обратной связи.
  • Ориентированные на понимание: Страницы концепций объясняют концепции архитектуры, более широкий взгляд и более глубокие знания о фреймворке.
  • Информационно-ориентированные: Справочники содержат техническое описание оборудования и способов его использования.

Такие компании, как GoDaddy, Symantec, Sapient, Fundrails, ShoppinPal и WhiteBoard широко используют LoopBack.

7.FeathersJs

Feathers-это набор инструментов и архитектурный шаблон, которые позволяют легко создавать масштабируемые REST API и приложения реального времени. Мы можем создавать прототипы за считанные минуты, а готовые к производству приложения-за несколько дней. Feathers могут взаимодействовать с любой серверной технологией, поддерживать более десятка баз данных и работать с любой фронтальной технологией, такой как React, VueJS, Angular, React Native, Android или iOS. Чтобы начать работу с первым приложением Feathers, следуйте руководству по быстрому запуску. Если вы застряли или у вас есть вопрос, вы можете получить помощь по их различным каналам, включая Slack, GitHub, StackOverflow, Telegram и т. Д.

8.KoaJS

Команда, стоящая за Express designs koa. Он стремится стать более компактной, выразительной и надежной основой для веб-приложений и API. Koa не включает в свое ядро никакого промежуточного программного обеспечения и предоставляет элегантный набор методов, которые делают написание серверов быстрым и приятным. Используя асинхронные функции, Koa позволяет отказаться от обратных вызовов и значительно увеличить обработку ошибок. Начните его с трех команд, как показано ниже.

  • $ nvm install 7
  • $ npm i koa
  • $ node my-koa-app.js

9.AdonisJS

AdonisJs - это Node.js MVC-фреймворк, который поддерживается и поддерживается динамичным сообществом. Он предлагает стабильную экосистему для написания серверных sid-приложений, так что вы можете сосредоточиться на бизнес-потребностях, а не на том, какой пакет выбрать или нет. Он похож на любой другой модуль npm с некоторым кодом сверху, чтобы плавно работать с приложениями AdonisJs. Нет никаких жестких предпосылок для использования AdonisJs, но есть обычное понимание JavaScript, асинхронного программирования и т. Д. Node.js очень полезно. Обязательно прочтите руководство по установке. В случае возникновения каких-либо вопросов или ошибок вы можете связаться с командой AdonisJs по следующим каналам.

  • Github: Делитесь ошибками или создавайте запросы функций
  • Форум: Задавайте вопросы, демонстрируйте свой проект и участвуйте в жизни фреймворка AdonisJs.
  • Discord: Присоединяйтесь к серверу Discord, чтобы мгновенно общаться с другими участниками сообщества.
  • Twitter: Будьте в курсе прогресса, достигнутого каждый день, и будьте в курсе потрясающих проектов, предоставляемых сообществом.

10.TotalJS

Total.js платформа-это набор библиотек, пакетов, компонентов пользовательского интерфейса, практик и полных продуктов, написанных на JavaScript. Основой платформы является серверный фреймворк под названием Total.js фреймворк и клиентская библиотека под названием JComponent. Обе части были написаны с нуля.

В большинстве случаев нам не нужно использовать какие-либо зависимости с Total.js платформа, потому что она содержит все, что нам нужно для развития.

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

11.Moleculer

Moleculer-это быстрый, современный и мощный фреймворк микросервисов для Node.js. Он предоставляет множество функций для создания и управления вашими микросервисами, таких как:

  • Решение на основе обещаний (совместимое с async/await)
  • концепция запрос-ответ
  • поддержка событийно-ориентированной архитектуры с балансировкой
  • встроенный реестр служб и динамическое обнаружение служб
  • сбалансированные по нагрузке запросы и события (циклический, случайный, использование процессора, задержка, шардинг)
  • функции отказоустойчивости (Автоматический выключатель, Переборка, Повтор, Тайм-аут, Резерв)
  • встроенное кэширующее решение (Memory, MemoryLRU, Redis)
  • подключаемые логгеры (Консоль, Файл, Pino, Bunyan, Winston, Debug, Datadog, Log4js)
  • транспортеры (TCP, NATS, MQTT, Redis, NATS Streaming, Kafka, AMQP 0.9, AMQP 1.0)
  • сериализаторы (JSON, Avro, MsgPack, Protocol Buffer, Thrift)
  • архитектура без мастера, все узлы равны
  • встроенная функция метрик с репортерами (Консоль, CSV, Datadog, Event, Prometheus, StatsD)
  • функция трассировки с экспортерами (Консоль, Datadog, Event, Jaeger, Zipkin)

12.Fastify

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

npm install fastify

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

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

Вывод

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

"Вся Информация Размещенная В Блоге "Septem Plus" Несет Ознакомительно-Информационный Характер И Не Принуждает К Каким Либо Действиям Пользователей Блога. Блог "Septem Plus" Не Несет Ответственности За Действия Пользователей После Посещения Блога "Septem Plus"."

Так же прочитайте наши другие статьи: Как Перенаправить URL WordPress! и 4 Лучшее Удаление Экрана Блокировки!, а так же 6 Инструментов Для Локальной Разработки WordPress! и получайте полезную информацию вместе с нами!) Так же не забывайте подписаться на нас в соц сетях , что бы не пропустить новые и полезные статьи)