Tinkerwell 5 is out now! Your favorite PHP Scratchpad enters the AI age. Tinkerwell 5 is out now! Your favorite PHP Scratchpad enters the AI age with conversational AI, MCP and more. Learn more
Note: This isn't meant to be an exhaustive guide to the changes in v4. Please see the changelog for more details (and full list of new features).
Rename your old config file (for instance to apidoc.old.php). Publish the new config file via php artisan vendor:publish --provider="Mpociot\ApiDoc\ApiDocGeneratorServiceProvider" --tag=apidoc-config. Then copy over any changes you've made in the old one and delete it when you're done.
Remove the output key. Source files now go to resources/docs/source and generated docs go to either public/docs/ or resources/views/apidoc.
Make sure the type value is set appropriately. See the docs.
Remove the bindings section. It has been superseded by the @urlParam annotation, which works similarly to the existing @queryParam annotation. See the docs
Remove the response_calls.bindings section. Use the Example: feature of @urlParam to specify the value you want to be used in response calls.
Rename the query and body sections in response_calls section to queryParams and bodyParams
Remove the apply.response_calls.headers. Move any headers you had there to apply.headers
If you've published the vendor views, rename them (for instance to route.old.blade.php). Publish the new views via php artisan vendor:publish --provider="Mpociot\ApiDoc\ApiDocGeneratorServiceProvider" --tag=apidoc-views. Compare the two views and reconcile your changes, then delete the old views. Some of the data being passed to the views (the $route object) has changed in either name or format, so things will likely break if you use old views.
The major change here is the introduction of the urlParameters section and the collapsing of route title, description, groupName, groupDescription, and authentication status (authenticated into a metadata section.
The location of the source files for the generated docs has changed. Move any prepend/append files you've created from public/docs/source to the new location (resources/docs/source)
@apiResource for Eloquent API resourcesDon’t waste time building admin panels for your Laravel applications. Let Invoker do the hard work for you. No coding. No setup. No stress.
Learn more