Skip to content

Route handlers dependencies type annotation support - #130

Merged
eadwinCode merged 8 commits into
mainfrom
route_function_parameter_annotation
Oct 13, 2023
Merged

Route handlers dependencies type annotation support#130
eadwinCode merged 8 commits into
mainfrom
route_function_parameter_annotation

Conversation

@eadwinCode

Copy link
Copy Markdown
Collaborator

Whats changed

  • Route function annotation support for Body, Query, Form, Header etc.
# WITHOUT TYPE ANNOTATION
@post("/items/")
def save_union_body_and_embedded_body(
    item: Union[OtherItem, Item], qty: int = Body(12)
):
    return {"item": item, "qty": qty}

# WITH TYPE ANNOTATION

@post("/items/")
def save_union_body_and_embedded_body(
    item: Body[Union[OtherItem, Item]], qty:Body[int, Body.P(default=12)]
):
    return {"item": item, "qty": qty}

# INJECTING OTHER DEPENDENCIES

@get("/others")
def get_requests_case_2(
    session: Inject[dict, Inject.Key("Session")], # injects session value from request object
    host: Inject[str, Inject.Key("Host")], # injects host value from request object
    config: Inject[Config], # injects application Config object from DI
):
    assert isinstance(config, Config)  # True
    assert host == "testclient"
    assert isinstance(session, dict) and len(session) == 0
    return True

@codecov

codecov Bot commented Oct 9, 2023

Copy link
Copy Markdown

Codecov Report

All modified lines are covered by tests ✅

Files Coverage Δ
ellar/common/__init__.py 100.00% <ø> (ø)
ellar/common/params/__init__.py 100.00% <100.00%> (ø)
ellar/common/params/args/__init__.py 100.00% <100.00%> (ø)
ellar/common/params/args/base.py 100.00% <100.00%> (ø)
ellar/common/params/decorators/__init__.py 100.00% <100.00%> (ø)
ellar/common/params/decorators/inject.py 100.00% <100.00%> (ø)
ellar/common/params/decorators/models.py 100.00% <100.00%> (ø)
ellar/common/params/params.py 98.76% <ø> (ø)
ellar/common/params/resolvers/__init__.py 100.00% <100.00%> (ø)
...mon/params/resolvers/system_parameters/__init__.py 100.00% <100.00%> (ø)
... and 12 more

📢 Thoughts on this report? Let us know!.

@eadwinCode
eadwinCode merged commit e674371 into main Oct 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant