ballerina/serdes : 0.1.0

Overview

This module provides APIs for serializing and deserializing subtypes of Ballerina anydata type.

Proto3Schema

An instance of the serdes:Proto3Schema class is used to serialize and deserialize ballerina values using protocol buffers.

Create a serdes:Proto3Schema object

1// Define a type which is a subtype of anydata.
2type Student record {
3 int id;
4 string name;
5 decimal fees;
6};
7
8// Create a schema object by passing the type.
9serdes:Proto3Schema schema = check new (Student);

While instantiation of this object, an underlying proto3 schema generated for the provided typedesc.

Serialization

1Student student = {
2 id: 7894,
3 name: "Liam",
4 fees: 24999.99
5};
6
7// Serialize the record value to bytes.
8byte[] bytes = check schema.serialize(student);

A value having the same type as the provided type can be serialized by invoking the serialize method on the previously instantiated serdes:Proto3Schema object. The underlying implementation uses the previously generated proto3 schema to serialize the provided value.

Deserialization

1type Student record {
2 int id;
3 string name;
4 decimal fees;
5};
6
7byte[] bytes = readSerializedDataToByteArray();
8serdes:Proto3Schema schema = check new (Student);
9
10// Deserialize the record value from bytes.
11Student student = check schema.deserialize(bytes);

The serialized value (byte[]) can be again deserialized by invoking the deserialize method on the instantiated serdes:Proto3Schema object. The underlying implementation uses the previously generated proto3 schema and deserializes the provided byte[]. As the result of deserialization the method returns the ballerina value with the type represented by the typedesc value provided during the serdes:Proto3Schema object instantiation.

Functions

[1]

generateSchema

Classes

[1]

Proto3Schema

Object types

[1]

Schema

A Schema object that can be used to create custom serializers/deserializers.

Errors

[1]

Error

Represents any error related to Ballerina SerDes module