dreamfactory/df-apidoc
DreamFactory API documentation package that auto-generates OpenAPI/Swagger specs for your instance's REST APIs. It adds a browsable, interactive docs interface so developers can explore endpoints, review request and response schemas, and test calls directly from the platform.
dreamfactory/df-apidoc is not a package you composer require into a normal Laravel app. It is a module of the DreamFactory platform — it ships as a dependency of dreamfactory/dreamfactory, and expects the platform's service-provider bootstrapping, module loader, RBAC layer, and route registration. Treat it as internal platform code you happen to be able to read.
Concretely:
composer show dreamfactory/df-apidoc and php artisan route:list | grep api_doc.Service contracts than writing docs by hand. Use darkaonline/l5-swagger or dedoc/scramble instead.api_docs endpoints (/api/v2/api_docs for the platform, /api/v2/api_docs/{service} for a single service). Point Swagger UI, Redoc, or a Postman import at those URLs and you immediately have live documentation for every service you have configured — with zero annotations to maintain.Spec-as-artifact. Don't consume the endpoint ad hoc. Fetch it during build/deploy, write openapi.json into your repo or release artifact, and diff it in CI. API surface changes then show up as reviewable PRs instead of surprising your consumers in production.
Per-service generation. The platform-wide spec is large and mostly irrelevant to any one consumer. Generate clients with openapi-generator against /api/v2/api_docs/{service} for the service you actually care about, so you get a small typed SDK rather than a 40-endpoint monolith.
Contract smoke tests. Parse paths out of the spec and assert each one exists in staging using Laravel's Http:: client. This catches the classic failure where a service is deployed but not registered (or registered under a different alias) long before a user finds it.
Custom services plug in for free. If your service extends DreamFactory's Service base and declares its routes the normal way, its documentation appears automatically. Put human-readable descriptions in the service's doc metadata / docblocks rather than hand-editing generated JSON — anything hand-edited is lost on the next regeneration.
Public developer portals. If you need to expose docs outside the admin boundary, proxy the DreamFactory endpoint through your own tiny controller: fetch with a role-scoped key, strip internal-only paths, cache the result for a few minutes, serve it. Don't expose the platform endpoint with an admin token — see below.
php artisan cache:clear and config:clear, and check the platform's cache config, before assuming a bug.openapi-generator produces materially different clients between the two. Pick a format explicitly in your fetch script and pin it, rather than relying on the default.host/basePath/servers are derived from the incoming request. Behind nginx, Traefik, or a load balancer you will get internal hostnames in the spec. Fix trusted-proxy config and APP_URL, or post-process the JSON in your fetch script.dreamfactory/dreamfactory. Bumping one without the other is a routine breakage; pin both and upgrade them together.x- extensions or custom descriptions, add a thin decorator service or post-process the fetched spec. Forking means you own merge conflicts on every platform release.php artisan route:list, a curl against the endpoint with an explicit X-DreamFactory-Api-Key (or session token), and a look at storage/logs/laravel.log. It is nearly always auth scope or cache — not the package.How can I help you explore Laravel packages today?