0

Restler バージョン 3.0.0rc4 のバージョン管理と認証クラスで問題が発生しています。

index.php ファイルでは、認証クラスと User クラスが次のように追加されます。

Defaults::$useUrlBasedVersioning = true;
$r->setAPIVersion(2);
$r->addAuthenticationClass('OAuth2');
$r->addAPIClass('User');

認証クラスは次のようになります。

namespace v2;
use Luracast\Restler\iAuthenticate;
class OAuth2 implements iAuthenticate
{
    ...
}

ユーザー クラスは次のようになります。

namespace v2;
class User
{
    ...
}

どちらのクラスも v2 フォルダーに配置されます。

(トークンを取得するために) 認証クラスを呼び出すことは問題ありません。User クラスが呼び出されると、Restler が Restler->authenticate で認証クラスを初期化できないため、内部サーバー エラーが発生します。初期化されるクラスは「OAuth2」で、「v2\OAuth2」である必要があります。

考えられる解決策は、次のような認証クラスを追加することです。

$r->addAuthenticationClass('v2\\OAuth2');

このソリューションで発生する問題は、Resources クラスが認証クラスの v1 と v2 の両方の URL を出力するのに対し、クラスは v2 にのみ存在することです。

  • v1/resources/oauth2-v2.json は、API パスを示しています: "/v1/oauth2/access_token.{format}"
  • v2/resources/oauth2-v2.json は、API パスを示しています: "/v2/oauth2/access_token.{format}"

誰でもこれに光を当てることができますか?API のバージョンごとに異なる認証クラスを使用することは可能ですか? v2 パスしか存在しないのに、Resources クラスには認証クラスの v1 パスと v2 パスが表示されるのはなぜですか?

4

0 に答える 0