Confluent-SchemaRegistry
view release on metacpan or search on metacpan
lib/Confluent/SchemaRegistry.pm view on Meta::CPAN
package Confluent::SchemaRegistry;
=head1 NAME
Confluent::SchemaRegistry - A simple client for interacting with B<Confluent Schema Registry>.
=head1 SYNOPSIS
use Confluent::SchemaRegistry;
my $sr = Confluent::SchemaRegistry->new( { host => 'https://my-schema-registry.org' } );
=head1 DESCRIPTION
C<Confluent::SchemaRegistry> provides a simple way to interact with B<Confluent Schema Registry>
(L<https://docs.confluent.io/current/schema-registry/docs/index.html>) enabling writing into
B<Apache Kafka> (L<https://kafka.apache.org/>) according to I<Apache Avro> schema specification
(L<https://avro.apache.org/>).
=head2 HEAD UP
=over 4
=item Confluent Schema Registry documentation
Full RESTful API documentation of B<Schema Registry> is available here:
L<https://docs.confluent.io/current/schema-registry/docs/api.html?_ga=2.234767710.1188695207.1526911788-1213051144.1524553242#>
=item Avro package
B<Avro> package is a dependency of I<Confluent::SchemaRegistry> but is not available in CPAN index.
Perhaps you may find and download it directly from GitHub repository at L<https://github.com/apache/avro/tree/master/lang/perl>.
Please, refer its documentation for installation.
=back
=cut
use 5.010;
use strict;
use warnings;
use JSON::XS;
use REST::Client;
use HTTP::Status qw/:is/;
use Try::Tiny;
use Aspect;
use Avro::Schema;
use version 0.77; our $VERSION = version->declare('v1.0.0');
our $COMPATIBILITY_LEVELS = [ qw/NONE FULL FORWARD BACKWARD/ ];
=head1 INSTALL
Installation of C<Kafka::Consumer::Avro> is a canonical:
perl Makefile.PL
make
make test
make install
=head2 TEST NOTES
Tests expect that in the target host is available Schema Registry listening on C<http://localhost:8081>, otherwise most of the test are skipped.
You can alternatively set a different URL by exporting C<CONFLUENT_SCHEMA_REGISTY_URL> environment variable.
=head1 USAGE
=head2 Constructor
=head3 new( [%config] )
Construct a new C<Confluent::SchemaRegistry>. Takes an optional hash that provides
configuration flags for the L<REST::Client> internal object.
The config flags, according to C<REST::Client::new> specs, are:
=over 4
=item host
The host at which I<Schema Registry> is listening.
The default is L<http://localhost:8081>
=item timeout
A timeout in seconds for requests made with the client. After the timeout the
client will return a 500.
The default is 5 minutes.
=item cert
The path to a X509 certificate file to be used for client authentication.
The default is to not use a certificate/key pair.
=item key
The path to a X509 key file to be used for client authentication.
( run in 0.469 second using v1.01-cache-2.11-cpan-39bf76dae61 )