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

Open Api Laravel Package

jane/open-api

Deprecated package for generating API clients/models from OpenAPI specs with Jane. This repository is no longer maintained; use the consolidated JanePHP project instead: https://github.com/janephp/janephp

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • API Client Standardization: Accelerate adoption of a PSR-7-compliant API client across microservices, reducing inconsistencies in HTTP client implementations (e.g., Guzzle, Symfony HTTP Client).
  • Developer Velocity: Automate 80% of boilerplate for API clients (request/response models, endpoints, authentication) from OpenAPI/Swagger specs, cutting manual coding time by ~50%.
  • Contract-First Development: Enforce API-first design by generating clients from specs before backend implementation, enabling parallel frontend/backend work.
  • Legacy System Modernization: Migrate monolithic apps to microservices by auto-generating typed clients for internal APIs, reducing integration friction.
  • Roadmap: Prioritize internal tooling (e.g., admin panels, analytics dashboards) where rapid API consumption is critical but custom clients are costly.
  • Build vs. Buy: Buy for teams lacking OpenAPI specs or needing zero-maintenance clients; build only if requiring highly customized error handling or middleware.

When to Consider This Package

Adopt If:

  • Your team uses OpenAPI/Swagger specs (YAML/JSON) as a single source of truth for APIs.
  • You need PSR-7-compatible clients (interoperable with Laravel HTTP, Symfony Messenger, etc.).
  • Developer onboarding is a bottleneck—auto-generated clients reduce cognitive load.
  • You’re migrating from REST to GraphQL or need to mock APIs during development.
  • Maintenance overhead of handwritten clients is prohibitive (e.g., 20+ endpoints).

Avoid If:

  • Your APIs are not documented in OpenAPI/Swagger (spec generation is a prerequisite).
  • You need real-time WebSocket support (this package is HTTP-only).
  • Custom authentication (e.g., OAuth2 flows beyond standard headers) requires deep client modifications.
  • Your team prefers async/await (this generates synchronous PSR-7 clients).
  • Active maintenance is critical—package is archived (though core functionality is stable).

Alternatives to Evaluate:

  • Zirconium/Zircote/SwaggerPHP: More actively maintained, but heavier dependency footprint.
  • OpenAPI Generator: Supports 100+ languages, but PHP output may require post-processing.
  • Handwritten Clients: Viable for <10 endpoints or highly specialized use cases.

How to Pitch It (Stakeholders)

For Executives:

"This package lets us cut API client development time by 50% by auto-generating typed, PSR-7-compliant clients from our OpenAPI specs. For example, a 50-endpoint API that took 2 dev-weeks to build manually could be ready in 2 hours—freeing engineers to focus on business logic. It also enforces consistent API contracts across teams, reducing integration bugs. The tradeoff? A slight learning curve for OpenAPI spec maintenance, but the ROI is clear for any project with >10 API endpoints."

Ask: "Where could we save 1–2 dev-months/year by standardizing API clients?"


For Engineering Leaders:

*"This solves two pain points:

  1. Boilerplate hell: No more rewriting GuzzleClient wrappers for every API call.
  2. Spec drift: Clients are always in sync with the OpenAPI spec—no more ‘works on my machine’ issues.

Key benefits:

  • PSR-7 compatibility: Works with Laravel HTTP, Symfony, and any PSR-18 client.
  • Type safety: Generated models match your OpenAPI schemas (e.g., DateTime, arrays, custom objects).
  • Extensible: Add middleware (e.g., auth, logging) via PSR-15 without touching generated code.

Risks:

  • Archived repo: Core functionality is stable, but no new features. We’d need to fork if critical bugs arise.
  • Spec quality: Garbage in → garbage out. We’d need to enforce spec standards (e.g., unique operation IDs).

Proposal: Pilot on one high-traffic API (e.g., payments, analytics) to measure dev time saved."*


For Developers:

*"This turns your OpenAPI spec into a fully typed PHP client with:

  • Zero manual HTTP code: No more curl-style requests or raw Guzzle calls.
  • IDE autocompletion: Navigate endpoints, params, and responses like a pro.
  • PSR-7 under the hood: Swap out the HTTP layer (e.g., Guzzle → Symfony HTTP) without breaking changes.

Example:

// Before (manual):
$response = $client->post('/users', [
    'json' => ['name' => 'Alice'],
    'headers' => ['Authorization' => 'Bearer ...']
]);

// After (auto-generated):
$user = $api->users()->store(['name' => 'Alice']);

How to use it:

  1. Add to composer.json (despite being archived, it’s battle-tested).
  2. Run vendor/bin/openapi with your spec.
  3. Profit.

Gotchas:

  • No WebSockets: Use a separate client for real-time APIs.
  • Complex auth: May need post-generation tweaks (e.g., custom auth middleware).
  • YAML only: Convert JSON specs to YAML first if needed.

Let’s try it on the [internal analytics API]—I’ll generate the client and compare dev time to a manual version."*

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.
babenkoivan/elastic-client
innmind/static-analysis
innmind/coding-standard
datacore/hub-sdk
alengo/sulu-http-cache-bundle
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
22h/doctrine-garbage-collection-bundle
imbo/imbo-coding-standard
visualbuilder/filament-lottie
servicioslineaonce/starter-kit
atomcoder/laravel-reorderable
irajul/filament-shadcn-theme
agtp/agtp-php
agtp/mod-php
centraldesktop/protobuf-php