Skip to content

Instantly share code, notes, and snippets.

@jgadling
jgadling / fastapi_dependency_extension.py
Created September 25, 2024 14:20
Example of using Strawberry FieldExtensions to implement FastAPI dependency injection in resolvers for FastAPI 0.115.0
import functools
import inspect
import types
import typing
from contextlib import AsyncExitStack
from fastapi.dependencies import utils as deputils
from fastapi.dependencies.models import Dependant
from fastapi.params import Depends as DependsClass
from strawberry.extensions import FieldExtension
@jgadling
jgadling / main.py
Created July 28, 2023 01:24
Example of using strawberry FieldExtension with dependency_injector
import typing
import strawberry
import uvicorn
from dependency_injector import containers, providers
from dependency_injector.wiring import Provide, inject
from fastapi import FastAPI
from strawberry.extensions import FieldExtension
from strawberry.fastapi import GraphQLRouter
from strawberry.field import StrawberryField
@jgadling
jgadling / main.py
Last active June 12, 2025 09:05
Example of using Strawberry FieldExtensions to implement FastAPI dependency injection in resolvers
# This snippet is valid for older FastAPI versions.
# For an updated DependencyExtension that works with FastAPI 0.115.0, refer to this gist:
# https://gist.github.com/jgadling/bf27a924cd9c34a2a64d2dbf8a5507e6
import typing
import strawberry
import uvicorn
from fastapi import Depends, FastAPI