abdasis/laravel-rapidapi 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

abdasis/laravel-rapidapi

Composer 安装命令:

composer require abdasis/laravel-rapidapi

包简介

Laravel wrapper untuk RapidAPI - konsumsi ribuan API dengan mudah

README 文档

README

Laravel package untuk mengonsumsi API dari RapidAPI dengan mudah. Dilengkapi dengan caching, retry otomatis, logging, dan base class ApiEndpoint untuk membuat wrapper API yang rapi.

Instalasi

composer require abdasis/laravel-rapidapi

Package ini menggunakan Laravel Package Auto-Discovery — service provider terdaftar otomatis.

Publish konfigurasi (opsional)

php artisan vendor:publish --tag=rapidapi-config

Konfigurasi

Tambahkan ke .env:

RAPIDAPI_KEY=your_rapidapi_key_here

# Opsional
RAPIDAPI_TIMEOUT=30
RAPIDAPI_RETRY_TIMES=3
RAPIDAPI_RETRY_SLEEP=100
RAPIDAPI_CACHE_ENABLED=false
RAPIDAPI_CACHE_TTL=3600
RAPIDAPI_LOGGING_ENABLED=false

Penggunaan

Facade

use Abdasis\LaravelRapidApi\Facades\RapidApi;

$response = RapidApi::forHost('open-weather-map.p.rapidapi.com')
    ->get('https://open-weather-map.p.rapidapi.com/weather', [
        'q' => 'Jakarta',
    ]);

$data = $response->json();

Dependency Injection

use Abdasis\LaravelRapidApi\RapidApiClient;

class WeatherService
{
    public function __construct(
        private readonly RapidApiClient $client
    ) {}

    public function current(string $city): array
    {
        $response = $this->client
            ->forHost('open-weather-map.p.rapidapi.com')
            ->get('https://open-weather-map.p.rapidapi.com/weather', [
                'q' => $city,
            ]);

        return $response->json();
    }
}

ApiEndpoint — Base Class

Buat wrapper API yang spesifik dengan extend ApiEndpoint:

use Abdasis\LaravelRapidApi\Support\ApiEndpoint;

class TikTokApi extends ApiEndpoint
{
    protected string $host = 'tiktok-downloader.p.rapidapi.com';
    protected string $baseUrl = 'https://tiktok-downloader.p.rapidapi.com';

    public function getVideo(string $url): array
    {
        return $this->get('/vid/index', ['url' => $url])->json();
    }
}

Daftarkan di service container:

$this->app->singleton(TikTokApi::class);

Method yang Tersedia

RapidApiClient

Method Deskripsi
get(url, query, headers) Kirim GET request
post(url, data, headers) Kirim POST request
put(url, data, headers) Kirim PUT request
patch(url, data, headers) Kirim PATCH request
delete(url, headers) Kirim DELETE request
forHost(host) Set X-RapidAPI-Host header
request() Buat RapidApiPendingRequest

RapidApiPendingRequest

Method Deskripsi
withHost(host) Set host untuk request ini
withHeaders(headers) Tambahkan header custom
withoutCache() Skip cache untuk request ini
get / post / put / patch / delete Kirim request

RapidApiResponse

Method Deskripsi
json(key, default) Ambil body sebagai array
body() Ambil body sebagai string
status() HTTP status code
successful() true jika 2xx
failed() true jika 4xx/5xx
rateLimited() true jika 429
unauthorized() true jika 401
notFound() true jika 404

Penanganan Error

use Abdasis\LaravelRapidApi\Exceptions\RapidApiException;
use Abdasis\LaravelRapidApi\Exceptions\RapidApiConnectionException;

try {
    $response = RapidApi::get('https://api.example.com/data');
} catch (RapidApiConnectionException $e) {
    // Timeout atau gagal koneksi
    logger()->error($e->getMessage());
} catch (RapidApiException $e) {
    // Response 4xx/5xx
    logger()->error($e->getMessage(), [
        'status' => $e->response?->status(),
    ]);
}

Caching

Aktifkan cache untuk mengurangi API call:

RAPIDAPI_CACHE_ENABLED=true
RAPIDAPI_CACHE_TTL=3600
RAPIDAPI_CACHE_STORE=redis

Cache otomatis digunakan pada GET request. Nonaktifkan per-request:

RapidApi::request()->withoutCache()->get('https://...');

Testing

composer test

Lisensi

MIT

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 3
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-03-01

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固