canaltp/navitiaio-api-component
PHP client for the Navitia.io API. Provides a NavitiaIoApiService to perform authenticated HTTP requests (via cURL/Guzzle), with simple methods like getUsers() and support for injecting a mocked Guzzle client for testing.
HttpClient facade).guzzlehttp/guzzle (v6.x, per composer.json).HttpClient if not managed.HttpTests).Illuminate\Support\Facades\Http).HttpClient) introduce latency or scaling issues?Illuminate\Http\Client\ConnectionException) integrate with this component’s errors?app('log')).throttle middleware).HttpClient for new projects; wrap this component only if NavitiaIo-specific features are critical.Cache::remember) to store API responses.NavitiaIoUserUpdated) for side effects."canaltp/navitiaio-api-component": "^1.6".// app/Providers/NavitiaIoServiceProvider.php
public function register()
{
$this->app->singleton(NavitiaIoApiService::class, function ($app) {
return new NavitiaIoApiService(
config('services.navitiaio.url'),
config('services.navitiaio.user'),
config('services.navitiaio.password')
);
});
}
public function __construct(private NavitiaIoApiService $navitiaIo) {}
NavitiaIo::getUsers()) for consistency.HttpClient.getUsers, patchUser) with basic error handling.Illuminate\Support\Facades\Http.HttpClient becomes sufficient.Log::debug.Illuminate\Bus\Queueable).HttpClient with connection pooling.dispatch(new FetchNavitiaIoUsers)).| Failure Scenario | Impact | Mitigation |
|---|---|---|
| NavitiaIo API downtime | App features break | Implement circuit breakers (e.g., spatie/fractal). |
| Authentication rejection | All requests fail | Retry with exponential backoff. |
| Self-signed cert issues | HTTPS requests fail | Use Laravel’s HttpClient with custom certs. |
| API schema changes | App breaks | Feature flags for deprecated endpoints. |
| Rate limiting | Throttled requests | Cache responses aggressively. |
NavitiaIoService vs. raw component).NavitiaIoException class to standardize errors.How can I help you explore Laravel packages today?