方便管理API文档,利用Markdown撰写,可部署到本地
方便管理API文档,利用Markdown撰写,可部署到本地
PHP REST API
共1Star
详细介绍
UAPI文档管理平台
方便管理API文档,利用Markdown撰写,可部署到本地。
预览地址 测试账号:cax123 密码:cax123 目前不兼容移动端
目前还有多数功能未完成,只是一个最初的可用版本。Readme写的也不好,如有什么疑问可直接联系我。
目录
起源(可直接略过)
做这个工具的初衷是为了解决自己以往写API文档的痛点,发现在做前后端离的项目,即后端人员只负责提供接口时,撰写API文档和管理这些文档是件耗时耗精力的事,明明项目已经很赶了,确还要花一部分时间去写这类文档,因此才有做这个工具的想法。实际上现今已经有很多这种类似的工具,在线免费的,但是总体用下来没有特别的适用方便。所以针对自己的实际使用情况整理出一些可以改进的地方,再参考众多类似的工具,来做了这个么东西。
之前一直有用showdoc - API文档,所以在功能及操作性上,有很大部分参考他,但是代码和项目的整体结构都是自己设计的,更没有直接Copy他的源码(实际上都没看过)。
简介
项目是在Linux操作系统
下开发的,Http服务器使用的是nginx
,已将nginx
的配置上传,可在这个基础上修改后直接使用。如果没有更改源码的需求,可直接使用docker
部署,里面都已配置好,且保持稳定。
技术栈
- Thinkphp5 (php7.2)
- PHPMailer (Mail)
- Mysql
- Vue 全家桶(Vue + Vue-router + Vuex + axios)
- Element-UI (作为前端的基础框架)
- clipboard (剪贴板管理)
- mavon-ediotr (markdown编辑器)
- scss (css样式,都通过该工具编译)
开始使用
Docker方式部署直接移步duapi Docker+lnmp
- 获取源码,可通过clone该仓库或直接下载源码
- 在根目录下执行
cnpm install 或 npm install
,安装前端部分所需要的模块(可以用其它方式) - 配置config/uapi.env.js 环境变量,主要配置接口域名等
- 执行
cnpm run build
,打包前端项目 - 导入
database.sql
至mysql
数据库 - 配置tp框架的参数
./server/config/uapi.php //必需配置,一些常量,详情查看源码。
./server/config/database.php //必需配置,数据库相关的配置。
./server/config //该文件夹下的其它文件都是可选配置,与tp5保持一致,直接参考tp5文档即可。
- 部署到服务器(如果用的nginx做http代理服务器,可直接使用我的nginx.conf配置),完成
目录结构
以下只对有使用到的目录做展开或说明
├── build
├── config
├── dist
├── index.html
├── node_modules
├── package.json
├── package-lock.json
├── README.md
├── server //后端代码,基本是TP5.1原有目录结构
│ ├── application
│ │ ├── command.php
│ │ ├── common.php //公有方法
│ │ ├── controller //控制器 Controller层
│ │ │ ├── OpenlyAccess.php //分享项目
│ │ │ ├── ProjectDir.php //项目目录相关
│ │ │ ├── ProjectItem.php //项目项相关
│ │ │ ├── Project.php //项目相关
│ │ │ ├── ProjectTpl.php //项目模板相关
│ │ │ ├── UserGuest.php //游客用户入口
│ │ │ └── User.php //登录用户相关
│ │ ├── error.tpl //404模板
│ │ ├── extend
│ │ │ ├── AuthCommon.php //认证用户操作基类(继承该类的类需要鉴权)
│ │ │ ├── BaseModel.php //所有模型的基类
│ │ │ ├── Email.php //邮件相关操作类
│ │ │ ├── GuestCommon.php //游客用户基类(继承该类的类不需要鉴权)
│ │ │ └── Utils.php //常用方法类
│ │ ├── http
│ │ │ └── middleware //请求中间件
│ │ │ └── shareAuth.php //访问分享页时,请求数据的入口,做特殊的鉴权方式
│ │ ├── model //数据库模型 Model层
│ │ ├── tags.php
│ │ ├── tpl
│ │ └── validate //验证器
│ ├── config
│ │ └── uapi.php //一些常量,需要单独配置
│ ├── database.sql //数据库表结构,初始使用时,需要导入到mysql
│ ├── extend
│ ├── public
│ │ ├── avatar //用户头像存放地址, defualt.png为默认头像
│ │ │ └── default.png
│ │ ├── constant.php //常量配置
│ │ ├── index.php //唯一入口
│ ├── README.md
│ ├── route //API路由定义
│ ├── runtime
│ ├── think
│ ├── thinkphp
│ └── vendor
├── src
│ ├── App.vue
│ ├── assets
│ │ ├── css
│ │ │ └── common
│ │ │ ├── common.css //公用样式
│ │ │ ├── faster.css //常用样式
│ │ │ └── normal.css //规范划的样式
│ │ ├── img
│ │ ├── logo.png
│ │ └── sass
│ │ ├── mixines.scss
│ │ └── var.scss
│ ├── axios.js
│ ├── common
│ │ ├── base.js //常用的基本方法
│ │ ├── ebus.js //events bus
│ │ ├── tip.js //tip消息提示,封装的Elemtent-ui的Message
│ │ └── utils.js //常用方法
│ ├── components
│ │ ├── common //一些公用的组件
│ │ │ ├── copy-clipboard.vue //剪贴板组件
│ │ │ ├── md-editor.vue //markdown组件
│ │ │ └── tree-node.vue //树形(可拖拽)组件
│ │ ├── items //项相关组件
│ │ │ ├── styles //项风格相关
│ │ ├── other //其它组件
│ │ ├── project //项目相关组件
│ │ ├── share //分享相关组件
│ │ └── user //用户相关组件
│ ├── main.js
│ ├── page //页面级组件
│ │ ├── 404.vue
│ │ ├── error.vue
│ │ ├── project
│ │ │ ├── center.vue
│ │ │ ├── details.vue
│ │ │ └── edit.vue
│ │ ├── share
│ │ │ ├── project-item.vue
│ │ │ └── project.vue
│ │ ├── test.vue
│ │ └── user
│ │ ├── login.vue
│ │ └── register.vue
│ ├── router //路由定义
│ │ └── index.js
│ └── store
│ ├── index.js
│ ├── modules
│ │ ├── project-item.js
│ │ ├── project.js
│ │ ├── system.js
│ │ └── user.js
│ └── mutation-types.js
├── static
│ └── iconfont //字体图标
开发规范
待补充
开发计划
TODO
- dockerfile编写
- 分享页的功能补充(显示更多的相关信息)
- 分享页的手机端页
- 接入Mock
- 接入测试
- 类似Postman的接口请求工具
- 多人协作
FIXME
待补充
联系我
版权信息
- 基于MIT协议发布,任何人可以用在任何地方,不受约束
- 有使用到来自互联网的模块和插件,若有异议,可以联系作者进行删除
-
1 Star
-
262 Star
-
155 Star
-
9 Star
-
0 Star
-
5 Star