Skip to content

Commit

Permalink
feat (#1431): add Response class (#1481)
Browse files Browse the repository at this point in the history
* feat (#1431): add Response class

* docs: add Response References

* docs: add Confluent Response API
  • Loading branch information
Lancetnik committed May 29, 2024
1 parent d83c1cc commit 031fd31
Show file tree
Hide file tree
Showing 33 changed files with 357 additions and 18 deletions.
24 changes: 24 additions & 0 deletions docs/docs/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ search:
- [FastStream](public_api/faststream/FastStream.md)
- [Header](public_api/faststream/Header.md)
- [Path](public_api/faststream/Path.md)
- [Response](public_api/faststream/Response.md)
- [TestApp](public_api/faststream/TestApp.md)
- [apply_types](public_api/faststream/apply_types.md)
- asyncapi
Expand All @@ -124,13 +125,15 @@ search:
- confluent
- [KafkaBroker](public_api/faststream/confluent/KafkaBroker.md)
- [KafkaPublisher](public_api/faststream/confluent/KafkaPublisher.md)
- [KafkaResponse](public_api/faststream/confluent/KafkaResponse.md)
- [KafkaRoute](public_api/faststream/confluent/KafkaRoute.md)
- [KafkaRouter](public_api/faststream/confluent/KafkaRouter.md)
- [TestApp](public_api/faststream/confluent/TestApp.md)
- [TestKafkaBroker](public_api/faststream/confluent/TestKafkaBroker.md)
- kafka
- [KafkaBroker](public_api/faststream/kafka/KafkaBroker.md)
- [KafkaPublisher](public_api/faststream/kafka/KafkaPublisher.md)
- [KafkaResponse](public_api/faststream/kafka/KafkaResponse.md)
- [KafkaRoute](public_api/faststream/kafka/KafkaRoute.md)
- [KafkaRouter](public_api/faststream/kafka/KafkaRouter.md)
- [TestApp](public_api/faststream/kafka/TestApp.md)
Expand All @@ -146,6 +149,7 @@ search:
- [KvWatch](public_api/faststream/nats/KvWatch.md)
- [NatsBroker](public_api/faststream/nats/NatsBroker.md)
- [NatsPublisher](public_api/faststream/nats/NatsPublisher.md)
- [NatsResponse](public_api/faststream/nats/NatsResponse.md)
- [NatsRoute](public_api/faststream/nats/NatsRoute.md)
- [NatsRouter](public_api/faststream/nats/NatsRouter.md)
- [ObjWatch](public_api/faststream/nats/ObjWatch.md)
Expand All @@ -165,6 +169,7 @@ search:
- [RabbitExchange](public_api/faststream/rabbit/RabbitExchange.md)
- [RabbitPublisher](public_api/faststream/rabbit/RabbitPublisher.md)
- [RabbitQueue](public_api/faststream/rabbit/RabbitQueue.md)
- [RabbitResponse](public_api/faststream/rabbit/RabbitResponse.md)
- [RabbitRoute](public_api/faststream/rabbit/RabbitRoute.md)
- [RabbitRouter](public_api/faststream/rabbit/RabbitRouter.md)
- [ReplyConfig](public_api/faststream/rabbit/ReplyConfig.md)
Expand All @@ -175,6 +180,7 @@ search:
- [PubSub](public_api/faststream/redis/PubSub.md)
- [RedisBroker](public_api/faststream/redis/RedisBroker.md)
- [RedisPublisher](public_api/faststream/redis/RedisPublisher.md)
- [RedisResponse](public_api/faststream/redis/RedisResponse.md)
- [RedisRoute](public_api/faststream/redis/RedisRoute.md)
- [RedisRouter](public_api/faststream/redis/RedisRouter.md)
- [StreamSub](public_api/faststream/redis/StreamSub.md)
Expand All @@ -188,6 +194,7 @@ search:
- [FastStream](api/faststream/FastStream.md)
- [Header](api/faststream/Header.md)
- [Path](api/faststream/Path.md)
- [Response](api/faststream/Response.md)
- [TestApp](api/faststream/TestApp.md)
- [apply_types](api/faststream/apply_types.md)
- app
Expand Down Expand Up @@ -349,6 +356,8 @@ search:
- [PublisherProto](api/faststream/broker/publisher/proto/PublisherProto.md)
- usecase
- [PublisherUsecase](api/faststream/broker/publisher/usecase/PublisherUsecase.md)
- response
- [Response](api/faststream/broker/response/Response.md)
- router
- [ArgsContainer](api/faststream/broker/router/ArgsContainer.md)
- [BrokerRouter](api/faststream/broker/router/BrokerRouter.md)
Expand Down Expand Up @@ -413,6 +422,7 @@ search:
- confluent
- [KafkaBroker](api/faststream/confluent/KafkaBroker.md)
- [KafkaPublisher](api/faststream/confluent/KafkaPublisher.md)
- [KafkaResponse](api/faststream/confluent/KafkaResponse.md)
- [KafkaRoute](api/faststream/confluent/KafkaRoute.md)
- [KafkaRouter](api/faststream/confluent/KafkaRouter.md)
- [TestApp](api/faststream/confluent/TestApp.md)
Expand Down Expand Up @@ -464,6 +474,8 @@ search:
- [BatchPublisher](api/faststream/confluent/publisher/usecase/BatchPublisher.md)
- [DefaultPublisher](api/faststream/confluent/publisher/usecase/DefaultPublisher.md)
- [LogicPublisher](api/faststream/confluent/publisher/usecase/LogicPublisher.md)
- response
- [KafkaResponse](api/faststream/confluent/response/KafkaResponse.md)
- router
- [KafkaPublisher](api/faststream/confluent/router/KafkaPublisher.md)
- [KafkaRoute](api/faststream/confluent/router/KafkaRoute.md)
Expand Down Expand Up @@ -506,6 +518,7 @@ search:
- kafka
- [KafkaBroker](api/faststream/kafka/KafkaBroker.md)
- [KafkaPublisher](api/faststream/kafka/KafkaPublisher.md)
- [KafkaResponse](api/faststream/kafka/KafkaResponse.md)
- [KafkaRoute](api/faststream/kafka/KafkaRoute.md)
- [KafkaRouter](api/faststream/kafka/KafkaRouter.md)
- [TestApp](api/faststream/kafka/TestApp.md)
Expand Down Expand Up @@ -550,6 +563,8 @@ search:
- [BatchPublisher](api/faststream/kafka/publisher/usecase/BatchPublisher.md)
- [DefaultPublisher](api/faststream/kafka/publisher/usecase/DefaultPublisher.md)
- [LogicPublisher](api/faststream/kafka/publisher/usecase/LogicPublisher.md)
- response
- [KafkaResponse](api/faststream/kafka/response/KafkaResponse.md)
- router
- [KafkaPublisher](api/faststream/kafka/router/KafkaPublisher.md)
- [KafkaRoute](api/faststream/kafka/router/KafkaRoute.md)
Expand Down Expand Up @@ -592,6 +607,7 @@ search:
- [KvWatch](api/faststream/nats/KvWatch.md)
- [NatsBroker](api/faststream/nats/NatsBroker.md)
- [NatsPublisher](api/faststream/nats/NatsPublisher.md)
- [NatsResponse](api/faststream/nats/NatsResponse.md)
- [NatsRoute](api/faststream/nats/NatsRoute.md)
- [NatsRouter](api/faststream/nats/NatsRouter.md)
- [ObjWatch](api/faststream/nats/ObjWatch.md)
Expand Down Expand Up @@ -657,6 +673,8 @@ search:
- [NatsJSFastProducer](api/faststream/nats/publisher/producer/NatsJSFastProducer.md)
- usecase
- [LogicPublisher](api/faststream/nats/publisher/usecase/LogicPublisher.md)
- response
- [NatsResponse](api/faststream/nats/response/NatsResponse.md)
- router
- [NatsPublisher](api/faststream/nats/router/NatsPublisher.md)
- [NatsRoute](api/faststream/nats/router/NatsRoute.md)
Expand Down Expand Up @@ -728,6 +746,7 @@ search:
- [RabbitExchange](api/faststream/rabbit/RabbitExchange.md)
- [RabbitPublisher](api/faststream/rabbit/RabbitPublisher.md)
- [RabbitQueue](api/faststream/rabbit/RabbitQueue.md)
- [RabbitResponse](api/faststream/rabbit/RabbitResponse.md)
- [RabbitRoute](api/faststream/rabbit/RabbitRoute.md)
- [RabbitRouter](api/faststream/rabbit/RabbitRouter.md)
- [ReplyConfig](api/faststream/rabbit/ReplyConfig.md)
Expand Down Expand Up @@ -764,6 +783,8 @@ search:
- usecase
- [LogicPublisher](api/faststream/rabbit/publisher/usecase/LogicPublisher.md)
- [PublishKwargs](api/faststream/rabbit/publisher/usecase/PublishKwargs.md)
- response
- [RabbitResponse](api/faststream/rabbit/response/RabbitResponse.md)
- router
- [RabbitPublisher](api/faststream/rabbit/router/RabbitPublisher.md)
- [RabbitRoute](api/faststream/rabbit/router/RabbitRoute.md)
Expand Down Expand Up @@ -808,6 +829,7 @@ search:
- [PubSub](api/faststream/redis/PubSub.md)
- [RedisBroker](api/faststream/redis/RedisBroker.md)
- [RedisPublisher](api/faststream/redis/RedisPublisher.md)
- [RedisResponse](api/faststream/redis/RedisResponse.md)
- [RedisRoute](api/faststream/redis/RedisRoute.md)
- [RedisRouter](api/faststream/redis/RedisRouter.md)
- [StreamSub](api/faststream/redis/StreamSub.md)
Expand Down Expand Up @@ -869,6 +891,8 @@ search:
- [ListPublisher](api/faststream/redis/publisher/usecase/ListPublisher.md)
- [LogicPublisher](api/faststream/redis/publisher/usecase/LogicPublisher.md)
- [StreamPublisher](api/faststream/redis/publisher/usecase/StreamPublisher.md)
- response
- [RedisResponse](api/faststream/redis/response/RedisResponse.md)
- router
- [RedisPublisher](api/faststream/redis/router/RedisPublisher.md)
- [RedisRoute](api/faststream/redis/router/RedisRoute.md)
Expand Down
11 changes: 11 additions & 0 deletions docs/docs/en/api/faststream/Response.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.Response
11 changes: 11 additions & 0 deletions docs/docs/en/api/faststream/broker/response/Response.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.broker.response.Response
11 changes: 11 additions & 0 deletions docs/docs/en/api/faststream/confluent/KafkaResponse.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.confluent.KafkaResponse
11 changes: 11 additions & 0 deletions docs/docs/en/api/faststream/confluent/response/KafkaResponse.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.confluent.response.KafkaResponse
11 changes: 11 additions & 0 deletions docs/docs/en/api/faststream/kafka/KafkaResponse.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.kafka.KafkaResponse
11 changes: 11 additions & 0 deletions docs/docs/en/api/faststream/kafka/response/KafkaResponse.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.kafka.response.KafkaResponse
11 changes: 11 additions & 0 deletions docs/docs/en/api/faststream/nats/NatsResponse.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.nats.NatsResponse
11 changes: 11 additions & 0 deletions docs/docs/en/api/faststream/nats/response/NatsResponse.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.nats.response.NatsResponse
11 changes: 11 additions & 0 deletions docs/docs/en/api/faststream/rabbit/RabbitResponse.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.rabbit.RabbitResponse
11 changes: 11 additions & 0 deletions docs/docs/en/api/faststream/rabbit/response/RabbitResponse.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.rabbit.response.RabbitResponse
11 changes: 11 additions & 0 deletions docs/docs/en/api/faststream/redis/RedisResponse.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.redis.RedisResponse
11 changes: 11 additions & 0 deletions docs/docs/en/api/faststream/redis/response/RedisResponse.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.redis.response.RedisResponse
2 changes: 1 addition & 1 deletion faststream/__about__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"""Simple and fast framework to create message brokers based microservices."""

__version__ = "0.5.9"
__version__ = "0.5.10"

SERVICE_NAME = f"faststream-{__version__}"

Expand Down
3 changes: 3 additions & 0 deletions faststream/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from faststream.annotations import ContextRepo, Logger, NoCast
from faststream.app import FastStream
from faststream.broker.middlewares import BaseMiddleware
from faststream.broker.response import Response
from faststream.testing.app import TestApp
from faststream.utils import Context, Depends, Header, Path, apply_types, context

Expand All @@ -23,4 +24,6 @@
"NoCast",
# middlewares
"BaseMiddleware",
# basic
"Response",
)
52 changes: 52 additions & 0 deletions faststream/broker/response.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
from typing import TYPE_CHECKING, Any, Optional, Union

if TYPE_CHECKING:
from faststream.types import AnyDict, SendableMessage


class Response:
def __new__(
cls,
body: Union[
"SendableMessage",
"Response",
],
**kwargs: Any,
) -> "Response":
"""Create a new instance of the class."""
if isinstance(body, cls):
return body

else:
return super().__new__(cls)

def __init__(
self,
body: "SendableMessage",
*,
headers: Optional["AnyDict"] = None,
correlation_id: Optional[str] = None,
) -> None:
"""Initialize a handler."""
if not isinstance(body, Response):
self.body = body
self.headers = headers or {}
self.correlation_id = correlation_id

def add_headers(
self,
extra_headers: "AnyDict",
*,
override: bool = True,
) -> None:
if override:
self.headers = {**self.headers, **extra_headers}
else:
self.headers = {**extra_headers, **self.headers}

def as_publish_kwargs(self) -> "AnyDict":
publish_options = {
"headers": self.headers,
"correlation_id": self.correlation_id,
}
return publish_options
Loading

0 comments on commit 031fd31

Please sign in to comment.