소스 검색

feat:增加mydoc脚本,自动化api文档生成

Yin Bin 4 달 전
부모
커밋
4c59aca9ec
3개의 변경된 파일63개의 추가작업 그리고 5개의 파일을 삭제
  1. 4 3
      .vscode/settings.json
  2. 38 2
      app/Http/Controllers/EnumController.php
  3. 21 0
      script/bin/mydoc

+ 4 - 3
.vscode/settings.json

@@ -111,12 +111,13 @@
     "extensions.experimental.useUtilityProcess": true,
     "i18n-ally.sourceLanguage": "zh",
     "cSpell.words": [
-        "Queueable",
         "Arrayable",
-        "Jsonable",
         "bootable",
-        "initializable",
         "Deviable",
+        "initializable",
+        "Jsonable",
+        "Queueable",
+        "setex",
         "unserialized"
     ],
     "php.problems.exclude": {

+ 38 - 2
app/Http/Controllers/EnumController.php

@@ -6,13 +6,49 @@ use Illuminate\Http\JsonResponse;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Redis;
 
+/**
+ * 枚举数据控制器
+ * @group 通用接口
+ */
 class EnumController extends Controller
 {
     /**
      * 获取枚举数据
      *
-     * @param Request $request
-     * @return JsonResponse
+     * @queryParam enum string required 枚举类名称,例如:UserType,OrderStatus等 Example: UserType
+     *
+     * @response 200 {
+     *   "data": {
+     *     "items": [
+     *       {
+     *         "label": "普通用户",
+     *         "value": 1
+     *       },
+     *       {
+     *         "label": "VIP用户",
+     *         "value": 2
+     *       }
+     *     ],
+     *     "msg": "success",
+     *     "status": 200
+     *   }
+     * }
+     *
+     * @response 400 {
+     *   "data": {
+     *     "items": [],
+     *     "msg": "枚举名称不能为空",
+     *     "status": 400
+     *   }
+     * }
+     *
+     * @response 404 {
+     *   "data": {
+     *     "items": [],
+     *     "msg": "枚举类不存在",
+     *     "status": 404
+     *   }
+     * }
      */
     public function getEnumData(Request $request): JsonResponse
     {

+ 21 - 0
script/bin/mydoc

@@ -0,0 +1,21 @@
+#!/bin/bash
+
+# 检查是否已安装 inotify-tools
+if ! command -v inotifywait &> /dev/null; then
+    echo "正在安装 inotify-tools..."
+    sudo apt-get update
+    sudo apt-get install -y inotify-tools
+fi
+
+# 监听控制器文件变更并自动重新生成文档
+while true; do
+    # 检测控制器目录变更,仅监听文件修改事件
+    inotifywait -r -e close_write,create,delete /home/fy/work/owl-admin/app/Http/Controllers
+    sleep 5
+
+    # 清除缓存并重新生成文档
+    echo "检测到控制器变更,重新生成文档..."
+    php artisan optimize:clear   # 清除所有缓存
+    php artisan scribe:generate  # 生成文档
+    echo "文档已更新"
+done