メインコンテンツまでスキップ

APIの保護

@secureApi decorator を使用して、API connector へのアクセスを保護および管理します。

この decorator を使用すると、各エンドポイントを個別に保護することも、connector 内のすべてのエンドポイントを保護することもできます。

@secureApi decorator を使用すると、デコレートされた関数は ApiCallContext 型のパラメーターを受け取り、API 呼び出しの完全なコンテキストを提供します。これには、エンドポイント ID、サーバー URL、HTTP メソッド、リクエストパラメーターなどの詳細が含まれます。

Note

Squid は 2 種類の API connector をサポートしており、どちらも同じ @secureApi decorator を使用して保護できます。
これらの 2 種類は、OpenAPI (OpenAPI document を使用して提供される) と一般的な REST API です。

特定のエンドポイントの保護

Backend code
import { secureApi, SquidService, ApiCallContext } from '@squidcloud/backend';

export class ExampleService extends SquidService {
@secureApi('usersApi', 'updateUserSalary')
secureUpdateUserSalaryEndpoint(context: ApiCallContext): boolean {
// TODO - Implement your security logic here
}
}

Connector 内のすべてのエンドポイントの保護

Backend code
import { secureApi, SquidService, ApiCallContext } from '@squidcloud/backend';

export class ExampleService extends SquidService {
@secureApi('usersApi')
secureUsersApi(context: ApiCallContext): boolean {
// TODO - Implement your security logic here
}
}

上記のコードサンプルは、@secureApi decorator を使用して API connector を保護する方法を示しています。この decorator は次の 2 つのパラメーターを受け取ります:

  1. Squid Console で確認できる API connector の ID。
  2. (オプション)保護するエンドポイントの名前。

エンドポイントの名前を指定しない場合、@secureApi decorator は connector 内のすべてのエンドポイントを保護します。