Рубрики
Без рубрики

Как и почему я построил экспресс-API-версию

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

Автор оригинала: 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 я реализовал функцию более высокого порядка, чтобы позволить пользователям обрабатывать ошибку, как им нравится.

Ресурсы

Хотите внести свой вклад?

Спасибо за ваш интерес к содействию. В настоящее время я принимаю взносы всех. Пожалуйста, смотрите Введение руководства Больше подробностей.