Обо мне

Я разработчик программного обеспечения с опытом работы более 6 лет и предприниматель. Я генеральный директор / соучредитель Multi Server Network, MSN Academy и Instutory. Я посвящаю свой опыт решению практических проблем в обществе.

Я начал свою карьеру в качестве разработчика PHP 6 лет назад, а недавно начал работать с Javascript в этом году.

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

Я твитнул @adesege_.

Проблема, которую я хотел решить

Я работал над проектом, который требует управления версиями моего api; что-то вроде `/ api / v1, / api / v2`. Большинство реализаций, которые я нашел в Интернете, не делали того, что я хотел.

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

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

Что такое Express API Versioning?

Экспресс-управление версиями - это промежуточное программное обеспечение, которое динамически загружает различные версии API без проблем в зависимости от номера версии, указанного в URL-адресе запроса.

Он написан с использованием синтаксиса Javascript ES6 и в дальнейшем транслируется в Javascript ES5 с помощью babel.

Недавно я выпустил версию 2, в которой был представлен новый способ устранения ошибок с использованием обратного вызова вместо блока try and catch в версии 1.

Стек технологий

Конечно, Express требуется как одноранговая зависимость.

Процесс создания Express API Versioning

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

Итак, я придумал, например:

api /
- v1 /
- - контроллеры /
….
- - сидеры /
- app.js
- v2 /
- - контроллеры /
….
- - модели /
- app.js
express.js

У меня есть папка api, которая содержит все разные версии api, которые есть в моем приложении в папках. Все папки независимы друг от друга, за исключением того, что вам нужен модуль из v1 в v2.

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

`express.js`, который находится в том же корне, что и папка` api`, является местом, где мы создаем экземпляр express и передаем его в `express-api-versioning` для использования в нашей точке входа.

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

Вот пример реализации

Проблемы, с которыми я столкнулся

Это был мой первый пакет NPM, и я мало знал, как его опубликовать. Сначала это было сложно, но, прочитав несколько онлайн-уроков, я смог с этим справиться.

Ключевые выводы

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

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

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

Первоначально опубликовано на Codementor в разделе Как и почему я создал Express-api-versioning.

Понравилась эта статья? Пожалуйста, хлопните в ладоши. Спасибо.