API のセキュリティ保護
@secureApi デコレーターを使用して、API コネクターへのアクセスを保護・管理します。
このデコレーターは、各エンドポイントを個別に保護することも、コネクター内のすべてのエンドポイントを保護することもできます。
@secureApi デコレーターを使用すると、デコレートされた関数は ApiCallContext 型のパラメーターを受け取ります。これは API 呼び出しの完全なコンテキストを提供します。これには、エンドポイント ID、サーバー URL、HTTP メソッド、リクエスト パラメーターなどの詳細が含まれます。
Note
Squid は 2 種類の API コネクターをサポートしており、どちらも同じ @secureApi デコレーターでセキュリティ保護できます。これら
2 種類は OpenAPI(OpenAPI ドキュメントで提供)と、通常の 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
}
}
コネクター内のすべてのエンドポイントを保護する
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 つのパラメーターを取ります。
- API コネクターの ID(Squid Console で確認できます)。
- (任意)保護するエンドポイントの名前。
エンドポイント名を指定しない場合、@secureApi デコレーターはコネクター内のすべてのエンドポイントを保護します。