方便管理API文档,利用Markdown撰写,可部署到本地

方便管理API文档,利用Markdown撰写,可部署到本地

PHP REST API

详细介绍

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

  1. 获取源码,可通过clone该仓库或直接下载源码
  2. 在根目录下执行cnpm install 或 npm install,安装前端部分所需要的模块(可以用其它方式)
  3. 配置config/uapi.env.js 环境变量,主要配置接口域名等
  4. 执行cnpm run build,打包前端项目
  5. 导入database.sqlmysql数据库
  6. 配置tp框架的参数
./server/config/uapi.php //必需配置,一些常量,详情查看源码。
./server/config/database.php //必需配置,数据库相关的配置。
./server/config //该文件夹下的其它文件都是可选配置,与tp5保持一致,直接参考tp5文档即可。
  1. 部署到服务器(如果用的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

待补充

联系我

阿祥 yes.ccx@gmail.com

版权信息

  • 基于MIT协议发布,任何人可以用在任何地方,不受约束
  • 有使用到来自互联网的模块和插件,若有异议,可以联系作者进行删除