Tours API
Tours API是一个强大的恢复界面,旨在为用户提供用于管理旅行的全面功能。用户可以访问各种功能,包括查看可用的旅行,通过Stripe Payment Gateway进行预订,完成后评级旅行以及使用过滤器,分页和分类机制。 API支持其他功能,例如用户帐户创建和管理,添加和编辑以及审查管理。值得注意的是,该实施将重新缓存结合起来,以优化延迟和速度。通过强大的加密,压缩技术和限制速率,可以加强安全措施。此外,该项目还将使用NodeMailer(SendGrid)的电子邮件通信集成了实用程序方法,并促进了文件上传到Cloudinary或imageKit(例如Cloudinary或ImageKit)的外部存储解决方案。
- 完整的项目已在渲染上部署,可以在此处访问。
- 注意:当前,API托管在免费渲染计划中,可能需要几秒钟才能加载。
关键功能 -
- 功能:查看和书籍旅行,汇率完成的旅行,过滤和排序旅行,管理用户帐户以及管理评论。
- 性能优化:使用REDIS缓存来增强潜伏期和速度。
- 安全措施:实施强大的加密,压缩和限制机制。
- 第三方集成:利用条纹进行付款处理,NodeMailer(SendInblue)进行电子邮件通信,以及用于外部文件存储的Cloudinary/ImageKit。
- 全面的功能:支持分页,分类和过滤与旅游相关的操作。
目录
- 先决条件
- 安装
- 用法
- API文档
- 建立
- 面临困难
- 未来范围
- 执照
先决条件
- 您的系统应安装node.js。如果没有,您可以从这里安装它。
- 您应该有一个MongoDB Atlas帐户。如果没有,您可以从这里创建一个。
- 您应该有一个条纹帐户。如果没有,您可以从这里创建一个。
- 您应该有一个sendinblue帐户。如果没有,您可以从这里创建一个。
- 您应该有一个ImageKit帐户。如果没有,您可以从这里创建一个。
- 对于测试,您可以使用VSCODE上可用的邮递员,失眠或雷电扩展。
- 对于缓存,您应该有一个redis帐户。在这个项目中,我使用了render.com的redis。如果没有,您可以从这里创建一个。
安装
- 克隆存储库
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®是基于Chrome的V8 JavaScript引擎的JavaScript运行时。
- express.js-快速,未开放的,简约的网络框架。
- MongoDB -MongoDB是一种通用,基于文档的,分布式数据库,为现代应用程序开发人员和云时代构建。
- Mongoose- node.js的优雅mongodb对象建模
- REDIS -REDIS是开源(BSD许可),内存数据结构存储,用作数据库,缓存和消息代理。
- JWT -JSON Web令牌是一种开放的行业标准RFC 7519方法,用于在两方之间安全地表示索赔。
面临困难
- 该项目最困难的部分是实现文件上传功能。我必须仔细阅读ImageKit的文档,以了解如何将文件上传到其服务器。我还必须仔细阅读Multer和Sharp的文档,以了解如何将文件上传到本地服务器。
- 该项目的第二个最困难的部分是实施付款功能。我必须仔细阅读Stripe的文档,以了解如何在应用程序中实现付款功能。
- 该项目最困难的部分是实施过滤,分类和分页功能。我必须仔细阅读猫鼬的文档,以了解如何在应用程序中实现过滤,分类和分页功能。
未来范围
- 向API添加前端应用程序。
- 实现访问和刷新令牌,以提高安全性。
- 实施最大登录尝试和锁定机制。
- 按位置添加功能为搜索旅行。
执照
麻省理工学院许可证
致谢
感谢Jonas Schmedtmann在Node.js,Express.js,Mongodb和Mongoose上的出色课程。