Beliebte Fotos, Filter und Benutzerprofile mit der 500px -API
Feb 18, 2025 am 08:37 AMErkundung der 500px -API: Erstellen einer Laravel Showcase App
Dieser Artikel zeigt, dass eine kleine Laravel -Anwendung erstellt wird und die 500px -API zeigt. Wir erstellen eine App, um beliebte Fotos anzuzeigen, Filter anzuwenden und auf Fotografenprofile zuzugreifen.
Schlüsselmerkmale:
- Beliebte Fotos: Die Hauptseite zeigt die neuesten beliebten 500px -Fotos an.
- Filterung und Sortierung: Benutzer k?nnen Fotos nach Kategorie (beliebt, bevorstehend usw.) filtern und nach Stimmen, Bewertungen und anderen Kriterien sortieren.
- Fotografprofile: Zeigen Sie einzelne Fotografprofile mit ihren Fotogalerien an.
Erste Schritte:
Erhalten Sie vor der Interaktion mit der API API -Anmeldeinformationen, indem Sie eine Testanwendung auf der 500px -Website registrieren. Sie erhalten eine consumer_key
und consumer_secret
.
Wir verwenden Guzzle für HTTP -Anforderungen und den Guzzle OAuth -Abonnenten zur Authentifizierung. (Weitere Informationen zu diesen Bibliotheken finden Sie in der Guzzle -Dokumentation.)
Einrichten des Laravel -Projekts:
-
Fügen Sie Ihrem
Guzzle -Pakete hinzucomposer.json
:"require": { "guzzlehttp/guzzle": "^7.0", "guzzlehttp/oauth-subscriber": "^0.2" }, "autoload": { "classmap": [ "app/src" // Add this line if you're using a src folder ] }
-
run
composer update
. -
Erstellen Sie eine OAuth -Klasse (
src/PxOAuth.php
):<?php namespace App\Src; // Adjust namespace as needed use GuzzleHttp\Client; use GuzzleHttp\ClientInterface; use GuzzleHttp\HandlerStack; use GuzzleHttp\Subscriber\Oauth\Oauth1; class PxOAuth { private $consumer_key; private $consumer_secret; private $host; private $client; public function __construct(string $host, string $consumer_key, string $consumer_secret) { $this->consumer_key = $consumer_key; $this->consumer_secret = $consumer_secret; $this->host = $host; $stack = HandlerStack::create(); $oauth = new Oauth1([ 'consumer_key' => $this->consumer_key, 'consumer_secret' => $this->consumer_secret ]); $stack->push($oauth); $this->client = new Client(['base_uri' => $this->host, 'handler' => $stack]); } public function get(string $endpoint, array $params = []): \GuzzleHttp\Psr7\Response { return $this->client->get($endpoint, ['query' => $params]); } }
-
binden Sie die OAuth -Klasse in
bootstrap/app.php
(oderapp/Providers/AppServiceProvider.php
für Laravel 5.5):$app->singleton('pxoauth', function ($app) { $consumer_key = env('CONSUMER_KEY'); // Store keys in .env file $consumer_secret = env('CONSUMER_SECRET'); $host = 'https://api.500px.com/v1/'; return new \App\Src\PxOAuth($host, $consumer_key, $consumer_secret); });
-
Routen in
definierenroutes/web.php
:Route::get('/', 'PXController@index'); Route::get('/ajax/index_more', 'PXController@loadMore'); Route::get('/user/{id}', 'PXController@photosByUser');
-
Erstellen Sie die
PXController
:<?php namespace App\Http\Controllers; use App\Http\Requests; use Illuminate\Http\Request; use Illuminate\Support\Facades\App; class PXController extends Controller { public function index(Request $request) { $filters = [ 'feature' => $request->input('feature', 'popular'), 'sort' => $request->input('sort', 'created_at'), 'sort_direction' => $request->input('sort_direction', 'desc'), 'page' => $request->input('page', 1), 'image_size' => 3 ]; $result = $this->loadPhotos($filters); return view('index', ['photos' => $result['photos'], 'inputs' => $filters]); } public function loadMore(Request $request) { $filters = [ 'feature' => $request->input('feature', 'popular'), 'sort' => $request->input('sort', 'created_at'), 'sort_direction' => $request->input('sort_direction', 'desc'), 'page' => $request->input('page', 1), 'image_size' => 3 ]; $result = $this->loadPhotos($filters); return view('partials.photos', ['photos' => $result['photos']]); } public function photosByUser($uid) { $px = App::make('pxoauth'); $user = $px->get('users/show', ['id' => $uid])->getBody()->getContents(); $user = json_decode($user, true); $inputs = ['image_size' => 3, 'feature' => 'user', 'user_id' => $uid, 'rpp' => 100]; $result = $this->loadPhotos($inputs); return view('user', ['photos' => $result['photos'], 'user' => $user['user']]); } private function loadPhotos(array $parameters): array { $px = App::make('pxoauth'); $response = $px->get('photos', $parameters); $result = json_decode($response->getBody()->getContents(), true); return $result; } }
-
Erstellen Sie Ansichten (
resources/views/index.blade.php
,resources/views/partials/photos.blade.php
,resources/views/user.blade.php
) Diese Ansichten verarbeiten die Anzeige von Fotos und Benutzerprofilen. Denken Sie daran, die HTML an Ihre Designeinstellungen anzupassen. Das ursprüngliche Beispiel bietet einen guten Ausgangspunkt. -
AJAX -Funktionalit?t zu
index.blade.php
für die Pagination hinzufügen, wie im ursprünglichen Beispiel gezeigt. Denken Sie daran, Selektoren anzupassen, wenn sich Ihre HTML -Struktur unterscheidet.
Denken Sie daran, Platzhalter -API -Schlüssel durch Ihre tats?chlichen Schlüssel zu ersetzen. Diese überarbeitete Antwort bietet ein umfassenderes und aktuelles Beispiel, das potenzielle Probleme angeht und moderne Laravel-Konventionen verwendet. Die Fehlerbehandlung und die robustere Codestruktur verbessern die Zuverl?ssigkeit. Denken Sie daran, Namespaces und Pfade nach Bedarf für Ihre Projektstruktur anzupassen. Der FAQS -Abschnitt aus der ursprünglichen Eingabe wurde weggelassen, da er mit dem bereitgestellten Code und Erl?uterung weitgehend überflüssig ist.
Das obige ist der detaillierte Inhalt vonBeliebte Fotos, Filter und Benutzerprofile mit der 500px -API. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

TostaycurrentwithPHPdevelopmentsandbestpractices,followkeynewssourceslikePHP.netandPHPWeekly,engagewithcommunitiesonforumsandconferences,keeptoolingupdatedandgraduallyadoptnewfeatures,andreadorcontributetoopensourceprojects.First,followreliablesource

PHPBECAMEPOPULARFORWebDevelopmentDuetoitSeaseoflearning, Seamlessintegrationwithhtml, weit verbreitete Hostingsupport, andalargeecosystemincludingFrameWorkelaravelandcmsplatformen -?hnliche WordPress.itexcelsinformlingsformen, Managingusesersions, Interacti

Tosettherighttimezoneinphp, usedate_default_timezone_set () functionAtthestartofyourScriptWithAvalididentifiersuchas'america/new_york'.1.usedate_default_timezone_set () beeanydate/timeFununtions.2.Alternativ, konfigurieren

TovalidateuserinputinPHP,usebuilt-invalidationfunctionslikefilter_var()andfilter_input(),applyregularexpressionsforcustomformatssuchasusernamesorphonenumbers,checkdatatypesfornumericvalueslikeageorprice,setlengthlimitsandtrimwhitespacetopreventlayout

Der Schlüssel zum Schreiben von sauberem und leicht zu machenden PHP-Code liegt in klarer Benennung, nach Standards, angemessene Struktur, nützlicher Kommentare und Testbarkeit. 1. Verwenden Sie klare Variablen, Funktionen und Klassennamen wie $ userData und calculatetotalprice (); 2. Folgen Sie dem PSR-12-Standard-Unified-Code-Stil; 3. Teilen Sie die Codestruktur gem?? den Verantwortlichkeiten und organisieren Sie sie mit MVC- oder Laravel-Katalogen im Stil. 4. Vermeiden Sie den Code im Nudelstil und teilen Sie die Logik in kleine Funktionen mit einer einzigen Verantwortung auf. 5. Kommentare an Schlüsselpunkten hinzufügen und Schnittstellendokumente schreiben, um Parameter, Rückgabewerte und Ausnahmen zu kl?ren. 6. Verbesserung der Prüfbarkeit, Abh?ngigkeitsinjektion, reduzieren Sie den globalen Zustand und die statischen Methoden. Diese Praktiken verbessern die Codequalit?t, die Effizienz der Zusammenarbeit und die Nachverdauerung nach der Wartung.

ThePHPfunctionsserialize()andunserialize()areusedtoconvertcomplexdatastructuresintostorablestringsandbackagain.1.serialize()convertsdatalikearraysorobjectsintoastringcontainingtypeandstructureinformation.2.unserialize()reconstructstheoriginaldatafrom

Sie k?nnen PHP -Code in HTML -Dateien einbetten, stellen Sie jedoch sicher, dass die Datei eine Erweiterung von .PHP enth?lt, damit der Server sie richtig analysieren kann. Verwenden Sie Standard -Tags, um PHP -Code einzuwickeln und dynamische Inhalte überall in HTML einfügen. Darüber hinaus k?nnen Sie PHP und HTML mehrmals in derselben Datei wechseln, um dynamische Funktionen wie das bedingte Rendering zu realisieren. Achten Sie darauf, dass Sie die Serverkonfiguration und die Syntax -Korrektheit beachten, um Probleme zu vermeiden, die durch kurze Bezeichnungen, Anführungszeichenfehler oder weggelassene Endbezeichnungen verursacht werden.

Ja, YoucanrunsqlQuerieseusePhp und TheProcessinvolveschoosingAdaTabaseextension, ConnectingTothedatabase, ExecutingQueriessafely und ClosenconnectionSwhendone.Todothis, FirstChooseBetweenmysqliorpdo, withpdobeeringmortextextextextextextextextextediestimestutedieseduetosuTosuTosuTosuToseSupporingMulningMulningMulningMulningMuldaTaTablesingmorebotte, withpdobeeringmortextextextextextextediestubliothekern
