NAME
PAGI::FastAPI::Depends - Dependency Injection Wrapper for PAGI::FastAPI
VERSION
Version v1.0.0
SYNOPSIS
use PAGI::FastAPI::Depends qw(Depends);
my $get_db = async sub ($c) {
return My::DB->connect;
};
my $auth_check = async sub ($c) {
my $token = $c->header('Authorization');
unless ($token) {
$c->status(401);
return { detail => 'Unauthorized' };
}
};
$app->get('/items',
dependencies => [
Depends($get_db, key => 'db'), # Store result in $c->stash->{db}
Depends($auth_check), # Execution guard dependency
],
handler => async sub ($c) {
my $db = $c->stash->{db};
return { status => 'ok' };
}
);
DESCRIPTION
PAGI::FastAPI::Depends provides a lightweight container object for wrapping async dependency subroutines in PAGI::FastAPI.
When registered on a route, dependencies execute asynchronously before the primary route handler. If a key option is specified, the return value of the dependency is automatically injected into the request context's stash ($c->stash->{$key}).
FUNCTIONS
Depends($code_ref, [%options])
Exportable helper function that constructs a new PAGI::FastAPI::Depends instance.
my $dep = Depends($code_ref, key => 'user');
Options:
key - Optional scalar string key under which the dependency's return value will be stored in $c->stash.
METHODS
new(code = $code_ref, [key => $key])>
Constructs a new PAGI::FastAPI::Depends object instance. Dies if $code_ref is missing or not a CODE reference.
code()
Returns the underlying code reference for the dependency subroutine.
key()
Returns the stash key string associated with the dependency, or undef if none was defined.
AUTHOR
Mohammad Sajid Anwar, <mohammad.anwar at yahoo.com>
REPOSITORY
https://github.com/manwar/PAGI-FastAPI
BUGS
Please report any bugs or feature requests through the web interface at https://github.com/manwar/PAGI-FastAPI/issues. I will be notified and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc PAGI::FastAPI::Depends
You can also look for information at:
BUG Report
CPAN Ratings
Search MetaCPAN
LICENSE AND COPYRIGHT
Copyright (C) 2026 Mohammad Sajid Anwar.
This program is free software; you can redistribute it and/or modify it under the terms of the Artistic License (2.0).