Weave 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

Record Api Request Laravel Package

mahbubhelal/record-api-request

A Laravel package that records every API request your app handles or sends, capturing method, URL, headers, payload, response, and timing. Useful for debugging, auditing, and monitoring traffic, with simple configuration and database storage out of the box.

View on GitHub
Deep Wiki
Context7

Getting Started

The v1.0.0 release notes are just "Initial release," so there is nothing in the changelog to anchor a review against. Treat the package's own repository as the source of truth and read it before installing.

Minimum steps to get a signal on day one:

  • composer require vendor/package in a throwaway Laravel app, not your main one first.
  • Read composer.json constraints (PHP version, illuminate/* ranges) — this is the fastest way to know whether it will survive your next Laravel upgrade.
  • If the package ships a service provider, confirm auto-discovery registers it (php artisan about lists discovered providers); otherwise register it manually in bootstrap/providers.php or config/app.php.
  • Publish anything it exposes: php artisan vendor:publish --provider="Vendor\Package\PackageServiceProvider" — check for config, migrations, views, and assets tags.
  • Run php artisan config:cache and php artisan route:cache immediately after publishing. A package that breaks under cached config will break in production, and you want to find that now, not at deploy.

Where to look first, in order: the README's "quick start," the config file (it documents the intended surface area better than most READMEs), the service provider's register()/boot() methods for container bindings and singletons, and any facade class.

First use case: pick one concrete, low-risk path — a single read/format/transform operation — and exercise it from php artisan tinker before wiring it into a controller. That validates container resolution, config loading, and the happy path in about five minutes.

Implementation Patterns

Wrap, don't sprinkle. Inject the package's service into your own thin adapter rather than calling its facade from controllers. Facades are the usual culprit when a package's major version forces a wide refactor; a single adapter confines that to one file.

Bind at the boundary. If the package exposes an interface, re-bind it in your own AppServiceProvider (or a dedicated provider) so tests can swap in a fake without touching package internals. If it only ships concrete classes, subclass or wrap them — anything you can't substitute is something you can't test cheaply.

Config as the switch. Publish the config file and drive behavior from config/package.php plus env vars, not from method-level arguments scattered across the app. On a fresh 1.0.0, assume the config keys are the most stable part of the API and the method signatures are the least.

Stage the rollout. Ship it behind one feature: a single console command, a queued job, an API resource. Keep the previous implementation reachable via config for one release cycle. For a first release with no changelog history, that rollback path is your only real safety net.

Testing. Add one integration test that hits the package's real path (with RefreshDatabase if it publishes migrations) and one unit test against a stubbed adapter. That pair catches both "the binding changed" and "our usage changed."

Pin and track. "vendor/package": "1.0.*" rather than ^1.0 until you've seen how they version. Watch the tag diff on 1.0.1 — the first patch after an initial release usually reveals whether they treat anything as breaking.

Gotchas and Tips

  • "Initial release" is not a stability guarantee. 1.0.0 says the author is willing to call it stable; it does not mean the API is battle-tested in production. Assume minor versions may still shift signatures and read every changelog until you've seen two or three.
  • Never edit inside vendor/. Publish migrations and config, then own them. If a published migration needs changing, write a new one.
  • Auto-discovery can silently conflict. Two packages binding the same abstract, or a facade aliasing a class you also use, fails in confusing ways. php artisan about and composer why vendor/package are your first two commands when something resolves to the wrong instance.
  • Config cache hides dynamic config. If the package reads env directly at runtime instead of through config/, it will work locally and fail under config:cache. Test it cached, always.
  • Migrations ordering. Published migrations get a fresh timestamp — if the package's tables have foreign keys into your existing tables, verify the order before running in a populated environment.
  • Long-running workers. If the package registers singletons that hold state (clients, caches, buffers), queue:restart after deploy and confirm it behaves under Octane. Singletons that accumulate state are a classic 1.0.0 bug.
  • Debugging hooks. Point the package's logger at a dedicated channel in config/logging.php so its output is separable from your app's. Failing that, wrap calls in a small try/catch that logs the package's version alongside the exception.
  • Extension points. If it dispatches events or exposes a contract, prefer subscribing to those over forking. With no documented extension points in the notes, check whether register() accepts overrides via config before you start subclassing.
  • Exit criteria. Decide in advance what would make you drop it: no release in six months, breaking changes in patch versions, or a maintainer response gap on an issue. Packages at 1.0.0 with thin notes live or die on that responsiveness.
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.
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package