Operation
#[Route]で同期API、#[Deferred]で非同期化します。HTTPリクエストもコンソールコマンドもJobも、すべてはOperationで統一されます。
Operationを始めるcomposer create-project blackops/skeleton my-app 1.1.0#[Route(method: 'POST', path: '/reports')]
#[Deferred]
final readonly class GenerateReport implements Operation
{
public function handle(
GenerateReportValue $value,
ExecutionContext $context,
): ReportGenerated
{
return new ReportGenerated(
$value->reportName,
'/reports/generated/' . $value->reportName . '.json',
);
}
}#[Route]で同期API、#[Deferred]で非同期化します。HTTPリクエストもコンソールコマンドもJobも、すべてはOperationで統一されます。
Operationを始めるBlackOpsはフロントエンドを持ちません。代わりに、JavaScript向けに接続クライアントのコードを自動生成します。フロントエンドはNext.jsでもNuxtでもSvelteKitでもお好きなFrameworkと組み合わせられます。
Frontendを接続する