MCPcopy
hub / github.com/ag2ai/faststream / include_router

Method include_router

faststream/_internal/fastapi/router.py:476–511  ·  view source on GitHub ↗

Includes a router in the API.

(  # type: ignore[override]
        self,
        router: Union["StreamRouter[MsgType]", "BrokerRouter[MsgType]"],
        *,
        prefix: str = "",
        tags: list[str | Enum] | None = None,
        dependencies: Sequence["params.Depends"] | None = None,
        default_response_class: type[Response] = Default(JSONResponse),
        responses: dict[int | str, dict[str, Any]] | None = None,
        callbacks: list["BaseRoute"] | None = None,
        deprecated: bool | None = None,
        include_in_schema: bool = True,
        generate_unique_id_function: Callable[["APIRoute"], str] = Default(
            generate_unique_id,
        ),
    )

Source from the content-addressed store, hash-verified

474 return docs_router
475
476 def include_router( # type: ignore[override]
477 self,
478 router: Union["StreamRouter[MsgType]", "BrokerRouter[MsgType]"],
479 *,
480 prefix: str = "",
481 tags: list[str | Enum] | None = None,
482 dependencies: Sequence["params.Depends"] | None = None,
483 default_response_class: type[Response] = Default(JSONResponse),
484 responses: dict[int | str, dict[str, Any]] | None = None,
485 callbacks: list["BaseRoute"] | None = None,
486 deprecated: bool | None = None,
487 include_in_schema: bool = True,
488 generate_unique_id_function: Callable[["APIRoute"], str] = Default(
489 generate_unique_id,
490 ),
491 ) -> None:
492 """Includes a router in the API."""
493 if isinstance(router, BrokerRouter):
494 for sub in router.subscribers:
495 sub._call_decorators = (
496 self._subscriber_compatibility_wrapper(),
497 *sub._call_decorators,
498 )
499
500 self.broker.include_router(router)
501 return
502
503 msg = (
504 "Including a StreamRouter into another StreamRouter is not supported "
505 "and may cause subtle context issues (e.g. message dependencies "
506 "returning EmptyPlaceholder). "
507 "Use a regular broker router (e.g. KafkaRouter, RabbitRouter, etc.) "
508 "for grouping subscribers and include that into the StreamRouter instead. "
509 "See: https://faststream.ag2.ai/latest/getting-started/integrations/fastapi/#multiple-routers"
510 )
511 raise TypeError(msg)

Callers 15

start_broker_lifespanMethod · 0.45
rabbit.pyFile · 0.45
redis.pyFile · 0.45
confluent.pyFile · 0.45
nats.pyFile · 0.45
kafka.pyFile · 0.45
test_router_pathMethod · 0.45