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 つのパラメーターを受け取ります:
- Squid Console で確認できる API connector の ID。
- (オプション)保護するエンドポイントの名前。
エンドポイントの名前を指定しない場合、@secureApi
decorator は connector 内のすべてのエンドポイントを保護します。