Class PowertoolsKafkaSerializerBase
Base class for Kafka event serializers that provides common functionality
for deserializing Kafka event structures in Lambda functions.
Inheritance
PowertoolsKafkaSerializerBase
Implements
ILambdaSerializer
Assembly: AWS.Lambda.Powertools.Kafka.Protobuf.dll
public abstract class PowertoolsKafkaSerializerBase : ILambdaSerializer
Inherit from this class to implement specific formats like Avro, Protobuf or JSON.
Constructors
Declaration
protected PowertoolsKafkaSerializerBase()
PowertoolsKafkaSerializerBase(JsonSerializerOptions)
Declaration
protected PowertoolsKafkaSerializerBase(JsonSerializerOptions jsonOptions)
Parameters
Type |
Name |
Description |
JsonSerializerOptions |
jsonOptions |
Custom JSON serializer options to use during deserialization.
|
PowertoolsKafkaSerializerBase(JsonSerializerOptions, JsonSerializerContext?)
Declaration
protected PowertoolsKafkaSerializerBase(JsonSerializerOptions jsonOptions, JsonSerializerContext? serializerContext)
Parameters
Type |
Name |
Description |
JsonSerializerOptions |
jsonOptions |
Custom JSON serializer options to use during deserialization.
|
JsonSerializerContext |
serializerContext |
Optional JSON serializer context for AOT compatibility.
|
PowertoolsKafkaSerializerBase(JsonSerializerContext)
Initializes a new instance of the PowertoolsKafkaSerializerBase class
with a JSON serializer context for AOT-compatible serialization/deserialization.
Declaration
protected PowertoolsKafkaSerializerBase(JsonSerializerContext serializerContext)
Parameters
Type |
Name |
Description |
JsonSerializerContext |
serializerContext |
The JSON serializer context for AOT compatibility.
|
Fields
JSON serializer options used for deserialization.
Declaration
protected readonly JsonSerializerOptions JsonOptions
Field Value
SerializerContext
JSON serializer context used for AOT-compatible serialization/deserialization.
Declaration
protected readonly JsonSerializerContext? SerializerContext
Field Value
Methods
Deserializes complex (non-primitive) types using format-specific implementation.
Each derived class must implement this method to handle its specific format.
Declaration
protected abstract object? DeserializeComplexTypeFormat(byte[] data, Type targetType, bool isKey, SchemaMetadata? schemaMetadata = null)
Parameters
Returns
Deserializes binary data using format-specific implementation.
Declaration
protected virtual object? DeserializeFormatSpecific(byte[] data, Type targetType, bool isKey, SchemaMetadata? schemaMetadata = null)
Parameters
Returns
Deserializes a primitive value from bytes based on the specified type.
Declaration
protected object? DeserializePrimitiveValue(byte[] bytes, Type valueType)
Parameters
Type |
Name |
Description |
byte[] |
bytes |
|
Type |
valueType |
|
Returns
Deserializes a base64-encoded value into an object using the appropriate format.
Declaration
protected virtual object DeserializeValue(string base64Value, Type valueType, SchemaMetadata? valueSchemaMetadata = null)
Parameters
Returns
Deserializes the Lambda input stream into the specified type.
Handles Kafka events with various serialization formats.
Declaration
public T Deserialize<T>(Stream requestStream)
Parameters
Type |
Name |
Description |
Stream |
requestStream |
|
Returns
Type Parameters
Checks if the specified type is a primitive or simple type.
Declaration
protected bool IsPrimitiveOrSimpleType(Type type)
Parameters
Type |
Name |
Description |
Type |
type |
|
Returns
Serializes an object to JSON and writes it to the provided stream.
Declaration
public void Serialize<T>(T response, Stream responseStream)
Parameters
Type |
Name |
Description |
T |
response |
|
Stream |
responseStream |
|
Type Parameters
Implements
Amazon.Lambda.Core.ILambdaSerializer