Автор оригинала: Temitayo Olusegun Fadojutimi.
Обо мне
Я разработчик программного обеспечения с более чем 6-летним опытом и предпринимателем. Я являюсь генеральным директором/соучредителем в Multi Server Network, MSN Academy и Instutory. Я посвятил мой опыт решения практических проблем в обществе.
Я начал свою карьеру как разработчик PHP 6 лет назад, и я недавно начал работать с JavaScript в этом году.
Я увлечен программированием, детьми и помогающим людям. Я работаю над телевизором, который направлен на обсуждение основных проблем, поскольку оно влияет на молодежь.
Я чирикать @adesege_ Отказ
Проблема, которую я хотел решить
Я работал над проектом, который требует версий My API; что-то вроде /API/V1,/API/V2
Отказ Большинство реализаций, которые я нашел онлайн, не сделал то, что хотел.
Мне нужен путь к динамичному пути между различными версиями API, без меня, чтобы плоть пару моих конечных точек API в моем приложении.
Мне также нужно было простым способом организовать мои папки API, чтобы я мог легко отделить версию одну версию из версии два, например.
Что такое версию Express API?
Экспресс API версификация Является ли экспресс-промежуточное программное обеспечение, которое динамически загружается разные версии API в зависимости от номера версии, указанного в URL-адреса запроса.
Он написан в синтаксисе JavaScript ES6, и он дополнительно транспортируется до JavaScript ES5, используя Babel.
Я недавно выпустил версию 2, которая ввела новый способ разрешить ошибки, используя обратный вызов вместо того, чтобы блок попробовать и ловить в версии 1.
Tech Stack.
Экспресс требуется в качестве одноранговой зависимости, конечно.
Процесс создания эрсперсной версии API
Мне нужно было иметь четко определенную структуру папки. Таким образом, первое, что было для меня спланировать, как будет структура папки, и как ресурсы будут переданы между моим точкой входа и API.
Итак, я придумал это, например:
api/ v1/ controllers/ .... seeders/ app.js v2/ controllers/ .... models/ app.js express.js
У меня есть API
Папка, которая содержит все разные версии API, мое приложение имеет в папках. Каждая папка не зависит друг от друга, за исключением того, что вы хотите потребовать модуля из V1 в V2.
Кроме того, каждая папка имеет точку входа под названием app.js
Отказ Поскольку мы должны использовать один экземпляр экспресс в нашем приложении, каждая точка входа в версии экспортирует функцию, которая принимает экземпляр экспресс в качестве параметра. Таким образом, вы можете легко использовать экземпляр в каждой точке записи.
Express.js
, который в том же корне с API
Папка, это где мы создаем эстровим экспресс и передаем ее на Экспресс-API-версификация
для использования в нашей точке входа.
Красота состоит в том, что вы также можете использовать его, чтобы загрузить ваше клиентское приложение.
Вот и Пример реализации
Проблемы я столкнулся
Это был мой первый пакет NPM, и мне было мало знаний о том, как опубликовать пакет NPM. Сначала было сложно, но после прочтения некоторых учебных пособий я смог преодолеть это.
Назначение ключей
В версии 1 я думал, что это было просто хорошо бросить
Ошибка и позволяя пользователю ловить его в своем приложении, но тогда я понял, что это не звучит Узел как
Отказ
Кроме того, я не видел ни одного пакета или экспресс-промежуточного программного обеспечения бросить ошибку пользователю. Вместо этого они отправляют ошибку на обратную связь и позволяют пользователю делать все, что им нравится с ним.
В версии 2 я реализовал функцию более высокого порядка, чтобы позволить пользователям обрабатывать ошибку, как им нравится.
Ресурсы
- Я написал хорошо подробную документацию в пакете Readme здесь
- Ссылка репозитория: https://github.com/adesege/express-api-versioning.
Хотите внести свой вклад?
Спасибо за ваш интерес к содействию. В настоящее время я принимаю взносы всех. Пожалуйста, смотрите Введение руководства Больше подробностей.