Туры API
Tours API - это надежный интерфейс Restful, предназначенный для предоставления пользователям полной функции для управления турами. Пользователи могут получить доступ к разнообразным функциям, включая просмотр доступных туров, бронирование их через платежный шлюз полосы, рейтинговые туры после завершения, а также использование фильтров, лицензионных механизмов и сортировки. API поддерживает дополнительные возможности, такие как создание и управление учетной записью пользователя, добавление и редактирование тура, а также администрирование обзора. Примечательно, что реализация включает в себя кэширование Redis для оптимизации задержки и скорости. Меры безопасности усиливаются за счет сильного шифрования, методов сжатия и ограничения скорости. Кроме того, проект интегрирует методы утилиты для связи по электронной почте с использованием Nodemailer (SendGrid) и облегчает загрузку файлов во внешние решения для хранения, такие как облачный или ImageKit.
- Полный проект развернут на рендеринге и может быть доступен здесь.
- Примечание. В настоящее время API размещается в плане бесплатного рендеринга и может занять несколько секунд для загрузки в первый раз.
Ключевые функции -
- Функциональность : просмотреть и бронировать туры, заполненные тарифы, фильтровать и сортировать туры, управлять учетными записями и администрировать обзоры.
- Оптимизация производительности : кэширование Redis используется для повышения задержки и скорости.
- Меры безопасности : реализованы сильные механизмы шифрования, сжатия и ограничения скорости.
- Сторонние интеграции : использует Stripe для обработки платежей, Nodemailer (SendInBlue) для связи по электронной почте и облачный/ImageKit для внешнего хранилища файлов.
- Комплексные функции : поддерживает лиц, сортировку и фильтрацию эксплуатации, связанных с турами.
Оглавление
- Предварительные условия
- Установка
- Использование
- Документация API
- Построен с
- Трудности столкнулись
- Будущая область
- Лицензия
Предварительные условия
- Ваша система должна установить node.js. Если нет, вы можете установить его отсюда.
- У вас должен быть аккаунт MongoDB Atlas. Если нет, вы можете создать один отсюда.
- У вас должна быть учетная запись Stripe. Если нет, вы можете создать один отсюда.
- У вас должна быть учетная запись SendInBlue. Если нет, вы можете создать один отсюда.
- У вас должна быть учетная запись ImageKit. Если нет, вы можете создать один отсюда.
- Для тестирования вы можете использовать почтальон или бессонницу или расширение ThunderClient, доступное на VSCODE.
- Для кэширования у вас должен быть учетная запись Redis. В этом проекте я использую Redis с render.com. Если нет, вы можете создать один отсюда.
Установка
- Клонировать репозиторий
git clone https://github.com/varshil-shah/tours-api.git
- Установите пакеты NPM
npm install or yarn install
- Создать файл .env в корневом каталоге, такой же, как файл .env.example, и добавьте переменные среды
- Запустите приложение
Использование
- Помогает вам создавать, читать, обновлять и удалять туры, пользователей, обзоры и бронирование.
- Предоставляет вам возможность фильтровать, сортировать и страдать на странице и другие модели.
- Интегрируйте API в любое фронтальное приложение и используйте наш API, чтобы создать полностью функциональный веб -сайт.
- Управляйте своими пользователями, турами, обзорами и бронированием с легкостью.
Построен с
- Node.js - Node.js® - это время выполнения JavaScript, построенное на двигателе JavaScript от Chrome.
- Express.js - Быстрый, неопинированный, минималистский веб -структура для node.js.
- MongoDB - MongoDB - это распределенная база данных общего назначения, основанную на базе данных, созданная для разработчиков современных приложений и для эпохи облаков.
- Mongoose - элегантное моделирование объекта MongoDB для node.js.
- Redis - Redis - это открытый исходный код (BSD Licensed), хранилище структуры данных в памяти, используемое в качестве базы данных, кеша и брокера сообщений.
- JWT - JSON Web Tokens - это открытый отраслевой стандарт RFC 7519 для безопасного представления претензий между двумя сторонами.
Трудности столкнулись
- Самая сложная часть проекта - реализация функции загрузки файла. Мне пришлось пройти документацию ImageKit, чтобы понять, как загружать файлы на свои серверы. Мне также пришлось пройти документацию «Молота и Шрай», чтобы понять, как загружать файлы на локальный сервер.
- Вторая наиболее сложная часть проекта состояла в том, чтобы реализовать функцию оплаты. Мне пришлось пройти документацию Stripe, чтобы понять, как реализовать функцию оплаты в приложении.
- Третья наиболее сложная часть проекта состояла в том, чтобы реализовать функцию фильтрации, сортировки и страниц. Мне пришлось пройти документацию Mongoose, чтобы понять, как реализовать функцию фильтрации, сортировки и страниц в приложении.
Будущая область
- Добавьте фронтальное применение в API.
- Реализуйте доступ к доступу и обновлениям для лучшей безопасности.
- Реализуйте максимальные попытки входа в систему и механизм блокировки.
- Добавьте функцию для поиска туров по местоположению.
Лицензия
MIT Лицензия
Благодарности
Спасибо Джонасу Шмедтманну за его удивительный курс на node.js, express.js, mongodb и mongoose.