Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Move OpenAPI UI hosting into Toolkit while keeping generated specs inside modules

オープン
#545 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
48/100
issue の種類
リファクタリング
明瞭さ
明確に書かれている
活発さ
静か
技術スタック
openapi, php

調査の方向性

src/Console/Commands/OpenApiCommand.php と src/Console/Commands/InstallToolkitCommand.php から始め、次に Toolkit のテンプレート、shared/views/openapi/openapi.php、public/assets/OpenApiUi、モジュールのリソース resources/openapi/spec.json を調べます。モジュールの Controllers/OpenApi/* が現在どのように公開されているかを追跡します。完了条件は、Toolkit が UI、ルート、共有アセットを所有し、生成済みの specs があるモジュールだけを一覧表示し、それらの specs を Toolkit のルート経由で提供し、生成処理をモジュール固有のままにすることです。

索引モデルが issue の本文から書いたものです。

説明

openapi toolkit

Summary

Refactor OpenAPI integration so Toolkit becomes the single host for the OpenAPI UI, routes, and shared Swagger assets, while generated OpenAPI specs continue to live inside the modules they document.

Why

Current OpenAPI integration mixes shared and module-specific responsibilities.

Today:

  • the shared OpenAPI HTML view lives in the project’s shared/views/openapi
  • Swagger UI assets are published into a shared public asset directory
  • per-module openapi/docs and openapi/spec routes are injected into each module
  • generated OpenAPI specs live inside each module under resources/openapi/spec.json

This creates an awkward split where a shared UI is accessed through module-local route publication.

Toolkit is already the framework’s developer-facing web UI for features such as:

  • database access
  • logs
  • emails
  • module management

That makes Toolkit the better place to host OpenAPI documentation access centrally.

Goal

Make Toolkit the central OpenAPI UI host while preserving module ownership of generated specs.

Proposed Direction

Toolkit should own OpenAPI UI hosting

Toolkit should become the single place that owns:

  • OpenAPI pages/views
  • OpenAPI routes
  • shared Swagger UI assets

OpenAPI should no longer rely on shared non-Toolkit HTML views or per-module docs route injection for UI access.

Generated specs should remain module-owned

Generated specs should continue to live inside each documented module:

  • modules/{Module}/resources/openapi/spec.json

This keeps OpenAPI output aligned with the module that owns the API.

Toolkit should discover only generated specs

Toolkit should list only modules that already have generated OpenAPI spec files.

Discovery should be based on the presence of:

  • resources/openapi/spec.json

Toolkit should not try to infer availability only from annotation sources.

Toolkit should serve specs through Toolkit routes

Toolkit should expose module OpenAPI specs through Toolkit-owned routes rather than relying on direct file access or module-local openapi/spec routes.

Generation command should stop owning shared UI concerns

The current module-targeted OpenAPI command should no longer publish shared UI assets or inject module docs routes.

Its responsibility should be reduced to module-specific spec generation.

Because of that narrower responsibility, the command name should be reviewed and likely changed from:

  • install:openapi

to something more accurate such as:

  • openapi:generate

A backward-compatible alias can be considered separately if needed.

UX Expectations

  • if Toolkit is installed but no module has a generated spec yet, Toolkit should show an empty state rather than a broken page
  • users must run the spec generation command for a module before that module appears in Toolkit’s OpenAPI UI

Acceptance Criteria

  • Toolkit owns the OpenAPI UI entry point
  • Toolkit owns the OpenAPI routes/pages
  • Toolkit owns the shared Swagger UI asset usage
  • generated specs remain stored inside each module under resources/openapi/spec.json
  • Toolkit lists only modules that already have generated spec files
  • Toolkit serves module specs through Toolkit routes
  • per-module OpenAPI docs route injection is no longer required for the Toolkit-hosted flow
  • the module-targeted OpenAPI command is reduced to spec-generation responsibility and its command naming is reviewed accordingly

Notes

Relevant code:

  • src/Console/Commands/OpenApiCommand.php
  • src/Console/Commands/InstallToolkitCommand.php
  • src/Module/Templates/Toolkit
  • project shared/views/openapi/openapi.php
  • project public/assets/OpenApiUi
  • module resources/openapi/spec.json
  • module Controllers/OpenApi/*

This ticket should be treated as the first OpenAPI/Toolkit integration step. It centralizes OpenAPI hosting in Toolkit without changing module ownership of generated specs.

主要言語
PHP
スター
36
フォーク
22
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

quantum-php/framework のほかの issue

quantum-php/framework の issue をすべて見る

似ている issue

PHP の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。