1. 安装插件
pnpm add @umijs/max-plugin-openapi
pnpm add swagger-ui-dist
如果不安装swagger-ui-dist
,不会影响运行。但会报错。
2.配置文件
export default defineConfig({// umi插件配置plugins: ['@umijs/max-plugin-openapi'],// openAPI配置openAPI: {requestLibPath: "import { request } from '@umijs/max';",mock: false,schemaPath: path.resolve(__dirname, 'swagger.json'),},
3.关于
注意sagger.json是本地生成的关于api的json。
可以使用apifox编辑好接口后,直接生成。
格式类似
{"info": {"title": "q","description": "","version": "1.0.0"},"tags": [{"name": "组卷管理"}],"paths": {"/papers/search": {"get": {"summary": "根据条件查询已有组卷","deprecated": false,"description": "查询已有组卷","operationId": "searchPapers","tags": ["组卷管理"],"parameters": [{"name": "paper","in": "query","description": "组卷名称","required": false,"type": "string"},{"name": "grade","in": "query","description": "年级","required": false,"type": "string"},{"name": "subject","in": "query","description": "学科","required": false,"type": "string"}],"responses": {"200": {"description": "查询成功","headers": {},"schema": {"type": "array","items": {"$ref": "#/definitions/Paper"}}},"400": {"description": "参数错误","headers": {},"schema": {"$ref": "#/definitions/ErrorResponse"}},"500": {"description": "服务器内部错误","headers": {},"schema": {"$ref": "#/definitions/ErrorResponse"}}},"security": [],"produces": ["application/json"]}}},"security": [],"swagger": "2.0","definitions": {"Paper": {"type": "object","properties": {"id": {"type": "integer","format": "int64","description": "组卷ID"},"name": {"type": "string","description": "组卷名称"},"status": {"type": "integer","description": "组卷状态:0-正在组卷,1-已完成组卷"}},"required": ["id","name","status"]},"ErrorResponse": {"type": "object","properties": {"code": {"type": "integer","format": "int32"},"message": {"type": "string"}},"required": ["code","message"]}},"securityDefinitions": {},"x-components": {}
}
4. 修改package 【重要】
一定看这里,在package.json里加上name与version。不然会一直报错,无法运行。
{"name": "name","version": "0.0.1",..."scripts": {..."openapi": "max openapi"},"dependencies": {...},"devDependencies": {...}}
5.运行
pnpm openapi
应该会servers
目录生成pageage.json中填写的name值
目录且生成相关文件。
关于swagger-ui
前面如安装了swagger-ui-dist
,那就可以在运行pnpm start
,可访问/umi/plugin/openapi
查看接口。个人感觉如何使用apifox等工具后,查看不查看的没有什么用。