forest-lynx/laravel-dadata
Laravel package integrating DaData API for address/company/person suggestions, cleaning and geocoding. Provides a client and helpers to call DaData endpoints from your app; configure API keys in Laravel and use services for autocomplete and data normalization.
forest-lynx/laravel-dadata) integrates Dadata.ru (Russian address validation, geocoding, and parsing API) into Laravel, making it ideal for applications requiring address validation, autocomplete, or geocoding (e.g., e-commerce, logistics, or location-based services).Dadata), simplifying usage (e.g., Dadata::suggest('ул.'))..env, adhering to Laravel’s 12-factor principles.ValidateDadataAddress) or API gateways for external services.required|dadata_valid)?DadataServiceProvider, making it plug-and-play.Dadata::suggest(), Dadata::clean() align with Laravel’s fluent syntax.Address::saved()).spatie/laravel-redis-cache for rate-limit mitigation.laravel-queue for async validation (e.g., Dadata::validateAsync()).pestphp/pest or mockery/mockery for API testing.Dadata::suggest() in frontend forms (e.g., Vue/React + Laravel Echo).$suggestions = Dadata::suggest(request('query'));
return response()->json($suggestions);
dadata_valid custom validation rule (extend Illuminate\Validation\Rules\Rule).'address' => ['required', new DadataValid],
Dadata::clean() to parse addresses into structured data (e.g., lat, lng).composer.json constraints).| Step | Priority | Effort | Dependencies |
|---|---|---|---|
Add .env config |
High | Low | Dadata API key |
| Implement autocomplete | High | Medium | Frontend integration |
| Add validation rule | Medium | Low | Custom rule class |
| Cache responses | Low | Medium | Redis setup |
| Async processing | Low | High | Queue worker |
forest-lynx/laravel-dadata for breaking changes (MIT license allows forks if needed).roave/security-advisories to track Dadata SDK vulnerabilities..env to avoid hardcoding.DD(Dadata::lastResponse()) for troubleshooting API issues.user_id, address).429 Too Many Requests).GeocodingService).spatie/backoff).Dadata::validate($address)->onQueue('dadata-queue');
lat, lng) in separate columns to avoid repeated API calls.| Scenario | Impact | Mitigation Strategy |
|---|---|---|
| Dadata API downtime | Autocomplete/validation fails | Fallback to cached responses or manual input |
| Rate limit exceeded | 429 errors | Queue requests + exponential backoff |
| Invalid API key | All calls fail | Monitor Dadata::lastError() |
| Database overload | Slow geocoding queries | Denormalize geodata or use read replicas |
| Regional unsupported | Non-Russian addresses fail | Multi-API integration (e.g., Google Maps) |
suggest(), clean(), validate()).suggest() vs. clean().How can I help you explore Laravel packages today?