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

API の保護

API コネクタへのアクセスを保護および管理するために、@secureApi デコレータを使用します。

このデコレータは、個々のエンドポイントを個別に保護するため、またはコネクタ内のすべてのエンドポイントを保護するために使用できます。

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

注意

Squid は 2 種類の API コネクタ(OpenAPI(OpenAPI ドキュメントを使用して提供される)と通常の REST API)をサポートしており、どちらも同じ @secureApi デコレータを使用して保護することができます。

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

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
}
}

コネクタ内のすべてのエンドポイントの保護

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 デコレータを使用して API コネクタを保護する方法を示しています。このデコレータは次の 2 つのパラメータを取ります:

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

エンドポイントの名前を指定しない場合、@secureApi デコレータはコネクタ内のすべてのエンドポイントを保護します。