トピック : Laravel、API、ThirdPartyIntegration、Web 開発 PHP LaravelTips APIsInLaravel
サードパーティ API を Laravel に統合すると、支払いやデータ取得などの外部サービスを活用してアプリケーションを強化できます。ここでは、サードパーティ API を効果的に統合するための例を含むステップバイステップのガイドを示します。
まず、サードパーティ API に登録し、API キーを取得します。 API キーなどの機密情報を Laravel の .env ファイルに保存します。
WEATHER_API_KEY=your_api_key_here WEATHER_API_URL=https://api.openweathermap.org/data/2.5/weather
Laravel は、PHP HTTP クライアントである Guzzle を使用して HTTP リクエストを作成します。 Laravel プロジェクトに Guzzle がまだインストールされていない場合は、インストールします:
composer require guzzlehttp/guzzle
コードを整理しておくには、API 統合ロジックを処理するサービス クラスを作成します。
次のコマンドを実行してサービス クラスを作成します:
php artisan make:service WeatherService
app/Services/WeatherService.php で、天気 API からデータを取得する関数を作成します。
<?php namespace App\Services; use GuzzleHttp\Client; class WeatherService { protected $client; public function __construct(Client $client) { $this->client = $client; } public function getWeather($city) { $url = env('WEATHER_API_URL'); $apiKey = env('WEATHER_API_KEY'); $response = $this->client->get($url, [ 'query' => [ 'q' => $city, 'appid' => $apiKey, 'units' => 'metric' // or 'imperial' for Fahrenheit ] ]); return json_decode($response->getBody(), true); } }
アプリケーションで WeatherService にアクセスできるようにするには、それをサービス プロバイダーにバインドします。
php artisan make:provider ApiServiceProvider
app/Providers/ApiServiceProvider.php に次を追加します。
<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use GuzzleHttp\Client; use App\Services\WeatherService; class ApiServiceProvider extends ServiceProvider { public function register() { $this->app->singleton(WeatherService::class, function () { return new WeatherService(new Client()); }); } public function boot() { // } }
config/app.php で、AppProvidersApiServiceProvider::class をプロバイダー配列に追加します。
API リクエストとレスポンスを処理するには、WeatherService と対話するコントローラーを作成します。
php artisan make:controller WeatherController
app/Http/Controllers/WeatherController.php に次を追加します。
WEATHER_API_KEY=your_api_key_here WEATHER_API_URL=https://api.openweathermap.org/data/2.5/weather
都市名に基づいて API リクエストを行うためのルートを追加します。
composer require guzzlehttp/guzzle
API から取得した天気情報を表示するビューを作成します。
resources/views/weather/show.blade.php に次を追加します。
php artisan make:service WeatherService
Laravel 開発サーバーを起動します:
<?php namespace App\Services; use GuzzleHttp\Client; class WeatherService { protected $client; public function __construct(Client $client) { $this->client = $client; } public function getWeather($city) { $url = env('WEATHER_API_URL'); $apiKey = env('WEATHER_API_KEY'); $response = $this->client->get($url, [ 'query' => [ 'q' => $city, 'appid' => $apiKey, 'units' => 'metric' // or 'imperial' for Fahrenheit ] ]); return json_decode($response->getBody(), true); } }
http://localhost:8000/weather/{city} にアクセスし、{city} を確認したい都市の名前 (例: ロンドン) に置き換えます。
次の手順に従って、サードパーティ API を Laravel アプリケーションに統合しました。
このセットアップでは、Laravel のベストプラクティスに従い、コードをモジュール化して安全に保ちます。このアプローチは、統合したいサードパーティ API に対して拡張できます!
@ LinkedIn に連絡して、私のポートフォリオをチェックしてください。
私の GitHub プロジェクトにスターを付けてください ⭐️
以上がLaravelアプリケーションにサードパーティAPIを統合するためのステップバイステップガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。