Unsplash-Fotos in Laravel einbinden: das Paket laravel-unsplash
Erstellt:
Aktualisiert:
Kategorien: Projekte
Autor: Tobias Schottstädt
Mit meinem Open-Source-Paket laravel-unsplash binden Sie die Unsplash-API in wenigen Minuten in Ihre Laravel-Anwendung ein: Fotosuche, Zufallsbilder, Kollektionen und Nutzerdaten – wahlweise per Service-Klasse oder Facade. Das Paket unterstützt Laravel 9 bis 13, bringt eine optionale Rate-Limiting-Middleware mit und ist mit über 20 Sternen mein populärstes Paket auf GitHub.
Was das Paket kann
Fotosuche: einfache Suche mit
searchPhotos()oder feinjustiert mitsearchPhotosAdvanced()– etwa nach Farbe, Ausrichtung und SortierungEinzelne Fotos:
getPhoto(),getRandomPhoto()undgetPhotoDownloadLink()für das Unsplash-konforme Download-TrackingKollektionen und Nutzer:
listCollections(),getCollection(),searchCollections(),getUser()undgetUserPhotos()Rate Limiting: eine optionale Middleware, die Ihre Anwendung vor dem API-Limit von Unsplash schützt
Installation
Das Paket kommt über Composer, die Konfiguration wird per Artisan veröffentlicht:
composer require xchimx/laravel-unsplash
php artisan vendor:publish --provider="Xchimx\UnsplashApi\UnsplashServiceProvider" --tag="config"Danach fehlt nur noch der API-Key aus Ihrem Unsplash-Developer-Konto in der .env-Datei:
UNSPLASH_ACCESS_KEY=your_unsplash_access_keyNutzung: Service oder Facade
Sie können den UnsplashService klassisch per Dependency Injection nutzen – oder die mitgelieferte Facade, wenn es schnell gehen soll:
use Xchimx\UnsplashApi\Facades\Unsplash;
class UnsplashController extends Controller
{
public function search()
{
$photos = Unsplash::searchPhotos('Nature');
return view('unsplash.search', compact('photos'));
}
}Für die erweiterte Suche stehen Ihnen die Parameter der Unsplash-API offen:
$photos = Unsplash::searchPhotosAdvanced([
'query' => 'Kassel',
'orientation' => 'landscape',
'per_page' => 24,
]);Rate Limiting gegen das API-Limit
Unsplash begrenzt die API-Zugriffe je nach Zugangsstufe. Damit Ihre Anwendung nicht unbemerkt ins Limit läuft, aktivieren Sie die mitgelieferte Middleware über zwei Umgebungsvariablen:
UNSPLASH_RATE_LIMITING_ENABLED=true
UNSPLASH_RATE_LIMITING_THRESHOLD=10Praxis-Tipp: Unsplash-Richtlinien einhalten
Unsplash verlangt für produktive Anwendungen, dass Downloads über den offiziellen Download-Endpoint gemeldet werden – genau dafür gibt es getPhotoDownloadLink(). Wer Bilder nur per URL einbettet, ohne das Tracking auszulösen, riskiert die Ablehnung des Production-Zugangs.
Fazit
laravel-unsplash nimmt Ihnen die komplette API-Anbindung ab – von der Authentifizierung bis zum Rate Limiting. Den Quellcode finden Sie auf GitHub, die Installation läuft über Packagist. Und wenn Sie Unterstützung bei Ihrem Projekt brauchen: Hier finden Sie meine Leistungen rund um Laravel Entwicklung in Kassel.
Autor
Hey 👋 mein Name ist Tobias Schottstädt und ich bin Full-Stack Developer aus Kassel. Als PHP-Spezialist aus Kassel kann ich dich möglicherweise in deinem Projekt unterstützen. Sie planen ein Projekt oder möchten Ihre bestehende Website modernisieren? Werfen Sie einen Blick auf meine Leistungen oder schreiben Sie mir direkt – ich freue mich, von Ihnen zu hören! Über mich | Kontakt
Ich entwickle individuelle Websites und Webanwendungen mit PHP und JavaScript – im Herzen meines Stacks stehen Laravel, Livewire und Vue.js. Vom durchdachten Backend über ein sauberes, responsives Frontend bis zur technischen Suchmaschinenoptimierung bekommen Sie bei mir alles aus einer Hand. Was mich antreibt: Software, die nicht nur heute funktioniert, sondern sich auch in fünf Jahren noch gut warten lässt.