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 デコレーターはコネクター内のすべてのエンドポイントを保護します。