[记录五]Vue+node+koa2+mysql+nginx+redis,全栈开发小程序和管理员管理系统项目——使用swagger自动生成接口文档

大家好,我是小佑@小佐:https://blog.csdn.net/Smell_rookie,是一名页面仔工程师,我会不定时在CSDN更新我的博客,有兴趣的可以点个关注来逛逛我的主页
前言:倘若是异地对接接口文档,有对接文档是非常必要的,经过对比我选用swagger,但是node使用swagger有很多坑(细节)需要注意,我花费了两天时间才将文档展现出来,尤其是对注释部分需要严格按照格式去写。
我这里选用swagger-jsdoc和koa2-swagger-ui去实现。
首先我们在routes文件夹中另起一个文件swagger.js,为什么在routes文件下呢?因为在给到别人看文档的时候你是打开127.0.0.1:300/swaggger这样的网址的,所以它相当于node的其中一个路由。

下载依赖

npm install swagger-jsdoc koa2-swagger-ui

yarn add swagger-jsdoc koa2-swagger-ui

版本

在这里插入图片描述

配置文档

//swagger.js
const router = require('koa-router')()
const swaggerJSDoc = require('swagger-jsdoc')
const swaggerDefinition = {
  info: {
    title: '你的文档标题',
    version: '1.0.0',
    description: '你的文档说明'
  },
  securityDefinitions: {
    ApiKeyAuth: {
      type: 'apiKey', // 类型
      in: 'header', // 位置
      name: 'token' // 参数
    }
  },
  host: '127.0.0.1:300',//需要跟你node服务器地址一样
  basePath: '/' // Base path (optional)
};
const options = {
  swaggerDefinition,
  apis: ['./routes/*.js'] // 写有注解的router的存放地址
};
const swaggerSpec = swaggerJSDoc(options)
// 通过路由获取生成的注解文件
router.get('/swagger.json', async function (ctx) {
  ctx.set('Content-Type', 'application/json')
  ctx.body = swaggerSpec
})
module.exports = router

在app.js文件引入路由

//app.js
const koaSwagger = require('koa2-swagger-ui')

//swagger配置
app.use(//注意这里需要看koa2-swagger-ui的版本 不然会报koaSwagger不是一个函数等错误
  koaSwagger({
    routePrefix: '/swagger', // host at /swagger instead of default /docs
    swaggerOptions: {
      url: '/swagger.json' // example path to json
    }
  })
)

此时页面是这样的:

在这里插入图片描述

接口注释

要想接口的路径和参数等信息出现在127.0.0.1:300/swagger页面上,需要在接口那协商注释;
swagger的注释是以@swagger开头的,方便swagger识别:下面以管理员接口为栗子。

//admin.js
// #region 
// #region可以将注释代码收缩
/**
 * @swagger
 * /admin/userLogin:
 *   post:
 *     summary: 管理员登录
 *     description: 管理员登录
 *     tags:
 *       - 管理员模块
 *     parameters:
 *       - name: name
 *         in: query
 *         required: true
 *         description: 账号
 *         type: string
 *       - name: password
 *         in: query
 *         required: true
 *         description: 密码
 *         type: string
 *     responses:
 *       200:
 *         description: 成功获取
 *         schema:
 *           type: 'object'
 *           properties:
 *             code:
 *               type: 'number'
 *             data:
 *               type: 'object'
 *               description: 返回数据
 *             message:
 *               type: 'string'
 *               description: 消息提示
 */
// #endregion

这样一个比较完整的接口文档就出来了。页面上也会出现如下:

在这里插入图片描述
这样就可以将自己的接口文档输出到页面上了。下篇将介绍前端请求上传图片和显示图片服务端需要做什么操作。

上一篇:token控制接口权限
下一篇:服务端图片上传与下载

  • 40
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 61
    评论
### 回答1: 全栈完整项目包括uniapp小程序vue后台管理系统node.js完整项目mysql数据库。这个项目的目标是开发一个全面的解决方案,用于构建一个多平台的应用程序。 首先,我们将使用uniapp小程序开发前端界面。uniapp是一个跨平台开发框架,可以同时适用于微信小程序、支付宝小程序、H5、安卓和iOS等平台。我们可以使用uniapp提供的各种组件和API来创建用户界面和交互。 其次,我们将使用vue框架开发后台管理系统Vue是一个轻量级的JavaScript框架,它提供了一种优雅的方式来构建用户界面。我们可以使用Vue的组件化开发思想和工具来构建管理系统的各个模块和功能。 然后,我们将使用node.js开发后端服务器。Node.js是一个基于Chrome V8引擎的JavaScript运行环境,可以用于构建高性能的网络应用程序。我们可以使用Node.js的各种模块和框架来处理前端请求、访问数据库、实现业务逻辑等。 最后,我们将使用mysql数据库存储数据。MySQL是一个流行的关系型数据库管理系统,可以用于存储和管理应用程序的数据。我们可以使用mysql的SQL语言来定义表结构、插入和更新数据、执行查询等操作。 这个全栈完整项目将涵盖前端开发、后台开发、数据库设计和管理等多个方面。通过使用不同的技术和工具,我们可以构建一个功能齐全、用户友好的应用程序,并能在多个平台上运行。 ### 回答2: 全栈完整项目是指开发人员可以同时处理前端、后端和数据库的开发工作。在这个问题,需要开发一个包括uniapp小程序vue后台管理系统node.js完整项目全栈应用,并使用mysql数据库进行数据存储。 首先,我会基于uniapp框架开发一个小程序。uniapp是一个跨平台开发框架,可以同时开发iOS和Android平台的应用。我将使用vue语法进行开发,利用uniapp提供的组件和API实现小程序的各种功能,如用户登录、数据展示等。 其次,我会开发一个vue后台管理系统vue是一个流行的前端框架,用于构建单页应用。我将使用vue和element-ui等插件来实现后台管理系统前端界面,包括用户管理、数据统计等功能,并通过API与后端进行数据交互。 然后,我会使用node.js开发一个完整的后端项目node.js是一个基于JavaScript运行的服务器端框架,具有高效、轻量级和事件驱动等特点。我将使用node.js编写服务器端的逻辑处理代码,包括用户认证、数据处理等功能。同时,我会使用express框架来简化开发流程,并使用mysql数据库进行数据的存储和查询。 最后,我会使用mysql数据库进行数据管理。mysql是一种常见的关系型数据库管理系统,我将使用它来设计和管理我所开发全栈应用所需要的表结构,并使用SQL语言进行数据的增删改查操作。 综上所述,我将使用uniapp、vuenode.jsmysql等技术栈,开发一个包含小程序、后台管理系统和完整的后端项目全栈应用。这个应用将具备完整的功能,同时满足用户的需求,并且可以对数据进行有效地管理。 ### 回答3: 全栈开发是指一个开发者可以独自负责开发一个完整的项目,包括前端、后端和数据库的搭建与开发。以下是一个使用uniapp小程序作为前端vue作为后台管理系统node.js作为后端、mysql作为数据库的全栈完整项目的描述。 该项目的目标是开发一个综合性的小程序,实现包括用户登录注册、商品展示、购物车管理、订单生成等功能。具体的技术选型如下: 1. 前端部分使用uniapp小程序进行开发。Uniapp是一个使用 Vue.js 进行开发跨平台应用的前端框架,支持一次开发,多平台发布。开发者可以使用Vue的语法进行UI界面的开发,并集成了微信小程序API。 2. 后台管理系统使用vue进行开发Vue是一个轻量级的JavaScript框架,可以快速搭建用户友好的界面。通过使用Vue,我们可以开发出一个方便管理商品、订单等数据的后台管理系统。 3. 后端使用node.js进行开发Node.js是一个基于Chrome V8引擎的开源后台运行环境,使用JavaScript进行编写。通过使用Node.js,我们可以实现用户登录注册、商品数据的增删改查等后端逻辑。 4. 数据库使用mysql进行搭建。MySQL是一个开源的关系型数据库管理系统,提供了高效稳定的数据存储和查询。通过使用mysql,我们可以存储用户信息、商品信息、订单信息等数据。 在项目开发过程,我们可以使用uniapp提供的API与微信小程序进行交互,实现用户登录注册、商品展示等功能。通过vue开发后台管理系统,可以实现对商品和订单等数据的管理。并且,通过node.js连接mysql数据库,实现对数据的增删改查操作。 全栈开发者需要具备前端、后端以及数据库的知识和能力,能够独立进行应用开发和维护。这个全栈完整项目开发将会全面锻炼开发者的技术水平,并且能够快速响应需求变化。
评论 61
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端发现

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值