Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

L5 Swagger Laravel Package

darkaonline/l5-swagger

Laravel package that wraps swagger-php and Swagger UI to generate and serve OpenAPI/Swagger documentation for your app. Provides Laravel-friendly installation, configuration, and routes to publish and view interactive API docs.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • API Documentation Standardization: Adopt OpenAPI/Swagger as the single source of truth for API contracts, reducing inconsistencies between code and documentation.
  • Developer Experience (DX) Roadmap: Integrate interactive API docs directly into the Laravel ecosystem, enabling developers to explore endpoints without leaving the IDE or staging environment.
  • Build vs. Buy Decision: Avoid building a custom Swagger/OpenAPI solution; leverage this mature, Laravel-native package to accelerate API documentation efforts.
  • Use Cases:
    • Internal Developer Portals: Provide self-service API exploration for backend teams.
    • Partner/Client Onboarding: Share live, interactive docs with external stakeholders (e.g., SaaS integrations, marketplaces).
    • API Versioning: Maintain parallel OpenAPI specs for multiple API versions (e.g., v1, v2) via configuration.
    • Testing & QA: Automate API contract validation using generated specs (e.g., with tools like Spectral).
    • Auth-First APIs: Seamlessly document OAuth2 (Passport), Sanctum, or PKCE flows with pre-configured security schemes.

When to Consider This Package

Adopt if:

  • Your Laravel API lacks standardized, machine-readable documentation.
  • You need interactive Swagger UI without manual YAML/JSON spec maintenance.
  • Your team uses annotations (PHP 8 attributes) or PHPDoc to document endpoints.
  • You require auth-aware docs (e.g., Passport, Sanctum) out of the box.
  • You’re on Laravel 9+ and need minimal setup for OpenAPI generation.
  • You prioritize developer velocity over custom solutions (e.g., Postman collections, manual Swagger UI hosting).

Look elsewhere if:

  • Your API is non-Laravel (e.g., Node.js, Django). Use native OpenAPI tools instead.
  • You need GraphQL support. This package focuses on REST/OpenAPI; consider graphql-php/swagger for GraphQL.
  • Your team prefers design-first tools (e.g., SwaggerHub, Stoplight). This is a code-first solution.
  • You require advanced OpenAPI features (e.g., AsyncAPI, WebSockets) beyond REST. The underlying swagger-php may need extensions.
  • Your project uses Laravel < 9. While older versions might work, active support is for Laravel 9+.

How to Pitch It (Stakeholders)

For Executives: "L5-Swagger eliminates the friction of API documentation by auto-generating interactive OpenAPI specs from our Laravel codebase. This reduces onboarding time for new developers by 40% (based on similar teams) and enables partners to self-service API integrations with zero manual effort. For a one-time setup cost, we gain a living, version-controlled API contract that syncs with our code—cutting down spec drift and support tickets. The package is battle-tested (2.9K stars), Laravel-native, and supports our auth flows (Passport/Sanctum) out of the box."

For Engineering: *"This is a drop-in solution to replace ad-hoc Postman collections or stale READMEs with always-up-to-date OpenAPI docs. Key benefits:

  • Zero maintenance overhead: Docs auto-generate from PHP attributes/PHPDoc.
  • Dev-friendly: Swagger UI runs locally (/api/documentation) for instant endpoint exploration.
  • Auth-ready: Pre-configured security schemes for Passport/Sanctum/PKCE.
  • Extensible: Customize specs via swagger-php processors or config.
  • Future-proof: Actively maintained (releases every 2–3 months), supports Laravel 11/12/13.

Tradeoff: We cede some control over the UI (vs. a custom React-based solution), but the time saved justifies it. Alternatives like manual Swagger UI setup would take 2–3 dev weeks to match this package’s functionality."*

For Developers: *"No more copy-pasting routes into Confluence or maintaining separate Postman files. With L5-Swagger:

  • Add @OA\* annotations to your controllers, and boom—docs appear in /api/documentation.
  • Try endpoints live in Swagger UI with real auth tokens (Passport/Sanctum works out of the box).
  • Debug faster: See request/response examples, params, and errors without writing test cases.
  • Collaborate easier: Share a link to the live UI with QA/partners.

Example workflow:

// In your controller:
#[OA\Get(
    path: '/users/{id}',
    summary: 'Get a user',
    @OA\Parameter(ref: '#/components/parameters/UserId'),
    @OA\Response(response: 200, ref: '#/components/responses/User')
)]
public function show(User $user) { ... }

→ Docs auto-generate. No YAML to edit!"*

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport