Просмотр исходного кода

docs: 标记 term-vocabulary 的无效 view 返回 500

view 校验了必填,但没校验取值范围,两条 throw 都变成 500——客户端分不清
「参数传错」和「服务端挂了」。2026-08-11 在 next 上实测:community / grammar
返回 200,my / all / public / user / studio 一律 500。

只加注释,未改行为。也未跑 Pint:它会重排这个遗留文件 27 行既有代码,而那些
行与本次注释无关,会把 6 行 TODO 埋进格式噪声里。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
visuddhinanda 1 неделя назад
Родитель
Сommit
84ca4cf817
1 измененных файлов с 6 добавлено и 0 удалено
  1. 6 0
      api-v13/app/Http/Controllers/TermVocabularyController.php

+ 6 - 0
api-v13/app/Http/Controllers/TermVocabularyController.php

@@ -31,6 +31,12 @@ class TermVocabularyController extends Controller
         $view = $validated['view'];
         $lang = $validated['lang'] ?? null;
 
+        // TODO: 下面两条 throw 都会变成 500,客户端因此分不清「我传错了参数」和
+        // 「服务端挂了」。2026-08-11 在 next 上实测:view=community / grammar 返回
+        // 200,view=my / all / public / user / studio 一律 500。
+        //   - 无效取值应是 422:把合法值写进上面的 validate('view' => [..., 'in:grammar,community']),
+        //     由框架拦下,与本控制器已有的 required 校验一致
+        //   - studio / user 尚未实现,应返回 501,而不是与「参数写错」同一个状态码
         // ✅ 使用 match 替代 switch
         $data = match ($view) {
             'grammar'   => $this->termService->getGrammarGlossary($lang),