asminog/yii2-proxy

HTTP proxy action extension for the Yii framework

Installs: 22

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

Type:yii2-extension

v0.1.1 2025-03-10 13:04 UTC

This package is auto-updated.

Last update: 2025-03-10 13:09:24 UTC


README

HTTP Proxy Extension for Yii 2


This is a simple proxy for Yii2 framework. This extension provides the HTTP proxy action for the Yii framework 2.0.

For license information check the LICENSE-file.

Build Status Build Status

GitHub repo file count GitHub code size in bytes

Installation

composer require asminog/yii2-proxy

Usage on domain.com

use asminog\proxy\ProxyAction;

class SiteController extends Controller
{
    public function actions()
    {
        return [
            'proxy' => [
                'class' => ProxyAction::class,
                // 'accessToken' => 'your-access-token', // - set access token for secure requests
                // 'throw404Exception' => true, // - show 404 error if access token is not valid or request url is not valid
                // 'proxyHeaders' => ['User-Agent', 'Content-Type'], // - set headers for proxy request
                'proxyHeaders' => ['Authorization', 'Content-Type'], // - set headers for chatgpt proxy request
                // 'proxyCookies' => ['cookie1', 'cookie2'], // - set cookies for proxy request
            ],
        ];
    }
}

Example request through proxy on domain.com

        $this->client = new Client([
            'transport' => CurlTransport::class,
            'baseUrl' => 'https://domain.com/site/proxy', // - set url to your proxy action
            'requestConfig' => [
                'format' => Client::FORMAT_JSON,
                'headers' => [
                    'Authorization' => 'Bearer ' . $token,
                    'Content-Type' => 'application/json',
                    'X-Proxy-Url' => 'https://api.openai.com/v1/chat/completions', // - set url to your api
//                    'X-Access-Token' => 'your-access-token' // - set access token for secure requests
                ],
            ],
        ]);

        $response = $this->client->post('', [
            'model' => 'gpt-3.5-turbo',
            'messages' => [
                [
                    'role' => 'user',
                    'content' => 'Hello, how are you?',
                ],
            ],
        ]);

        if ($response->isOk) {
            $data = $response->data;
            // - do something with response data
        } else {
            // - handle error
        }
        $this->client->close();