tipitaka.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. <?php
  2. /*
  3. |--------------------------------------------------------------------------
  4. | v3 · tipitaka —— 三藏相关的功能块
  5. |--------------------------------------------------------------------------
  6. |
  7. | 由 routes/api.php 的 v3 组 require 进来,前缀已在那边加好。
  8. |
  9. | **路径开头是「领域-功能」,不是资源坐标。** `channel + book + para` 在 wikipali
  10. | 里是通用坐标(sentences / wbw / 批注 / 进度全都用它),放在路径开头会让每个新
  11. | 能力来抢同一个前缀,而且看不出这条 API 干什么。所以是
  12. | `/v3/tipitaka-reading/{channel}?book=&para=`,不是 `/v3/channels/{c}/books/{b}/…`。
  13. |
  14. | 路由判据(见根目录 CLAUDE.md):
  15. | - 必填参数进路径,可选参数留查询串
  16. | - 路径变量最多两个,能做到一个最好;多出来的想办法降成 filter
  17. |
  18. */
  19. use App\Http\Controllers\V3\TipitakaReadingController;
  20. use App\Http\Controllers\V3\TipitakaRelatedParagraphAggregateController;
  21. use App\Http\Controllers\V3\TipitakaRelatedParagraphController;
  22. use Illuminate\Support\Facades\Route;
  23. // 只有 channel 必填,所以路径上只有它一个变量;book / chapter / para 全是 filter。
  24. // 不带任何查询串 = 取这个 channel 的全部译文,下载场景要的就是这个。
  25. Route::get('tipitaka-reading/{channel}', TipitakaReadingController::class)
  26. ->whereUuid('channel');
  27. // 段落关联关系:查询(原 v2 related-paragraph)+ 聚合(book_name 列表 / 某 book_name 的 cs_para)。
  28. Route::get('tipitaka-related-paragraphs/aggregate', [TipitakaRelatedParagraphAggregateController::class, 'index'])
  29. ->name('tipitaka-related-paragraphs.aggregate');
  30. Route::get('tipitaka-related-paragraphs/aggregate/{book_name}', [TipitakaRelatedParagraphAggregateController::class, 'show'])
  31. ->name('tipitaka-related-paragraphs.aggregate.show');
  32. Route::get('tipitaka-related-paragraphs', [TipitakaRelatedParagraphController::class, 'index'])
  33. ->name('tipitaka-related-paragraphs.index');