Chapter 6. Managing Apicurio Registry content using a Java client You can write a Apicurio Registry Java client application and use it to manage artifacts stored in Apicurio Registry: Section 6.1, "Apicurio Registry Java client" Section 6.2, "Writing Apicurio Registry Java client applications" Section 6.3, "Apicurio Registry Java client configuration" 6.1. Apicurio Registry Java client You can manage artifacts stored in Apicurio Registry by using a Java client application. You can create, read, update, or delete artifacts by using the Apicurio Registry Java client classes. You can also use the Apicurio Registry Java client to perform administrator functions, such as managing global rules or importing and exporting Apicurio Registry data. You can access the Apicurio Registry Java client by adding the correct dependency to your Apache Maven project. For more details, see Section 6.2, "Writing Apicurio Registry Java client applications" . The Apicurio Registry client is implemented by using the HTTP client provided by the JDK, which you can customize as needed. For example, you can add custom headers or enable configuration options for Transport Layer Security (TLS) authentication. For more details, see Section 6.3, "Apicurio Registry Java client configuration" . 6.2. Writing Apicurio Registry Java client applications You can write a Java client application to manage artifacts stored in Apicurio Registry by using the Apicurio Registry Java client classes. Prerequisites Apicurio Registry is installed and running in your environment. You have created a Maven project for your Java client application. For more details, see Apache Maven . Procedure Add the following dependency to your Maven project: <dependency> <groupId>io.apicurio</groupId> <artifactId>apicurio-registry-client</artifactId> <version>USD{apicurio-registry.version}</version> </dependency> Create the Apicurio Registry client as follows: public class ClientExample { public static void main(String[] args) throws Exception { // Create a registry client String registryUrl = "https://my-registry.my-domain.com/apis/registry/v2"; 1 RegistryClient client = RegistryClientFactory.create(registryUrl); 2 } } 1 If you specify an example Apicurio Registry URL of https://my-registry.my-domain.com , the client will automatically append /apis/registry/v2 . 2 For more options when creating a Apicurio Registry client, see the Java client configuration in the section. When the client is created, you can use all of the operations available in the Apicurio Registry REST API in the client. For more details, see the Apicurio Registry REST API documentation . Additional resources For an open source example of how to use and customize the Apicurio Registry client, see the Apicurio Registry REST client demonstration . For details on how to use the Apicurio Registry Kafka client serializers/deserializers (SerDes) in producer and consumer applications, see Chapter 7, Validating Kafka messages using serializers/deserializers in Java clients . 6.3. Apicurio Registry Java client configuration The Apicurio Registry Java client includes the following configuration options, based on the client factory: Table 6.1. Apicurio Registry Java client configuration options Option Description Arguments Plain client Basic REST client used to interact with a running Apicurio Registry instance. baseUrl Client with custom configuration Apicurio Registry client using the configuration provided by the user. baseUrl , Map<String Object> configs Client with custom configuration and authentication Apicurio Registry client that accepts a map containing custom configuration. For example, this is useful to add custom headers to the calls. You must also provide an authentication server to authenticate the requests. baseUrl, Map<String Object> configs, Auth auth Custom header configuration To configure custom headers, you must add the apicurio.registry.request.headers prefix to the configs map key. For example, a configs map key of apicurio.registry.request.headers.Authorization with a value of Basic: YWxhZGRpbjpvcGVuc2VzYW1 sets the Authorization header with the same value. TLS configuration options You can configure Transport Layer Security (TLS) authentication for the Apicurio Registry Java client using the following properties: apicurio.registry.request.ssl.truststore.location apicurio.registry.request.ssl.truststore.password apicurio.registry.request.ssl.truststore.type apicurio.registry.request.ssl.keystore.location apicurio.registry.request.ssl.keystore.password apicurio.registry.request.ssl.keystore.type apicurio.registry.request.ssl.key.password Additional resources For details on how to configure authentication for Apicurio Registry Kafka client serializers/deserializers (SerDes), see Chapter 7, Validating Kafka messages using serializers/deserializers in Java clients .

Commands:
<dependency> <groupId>io.apicurio</groupId> <artifactId>apicurio-registry-client</artifactId> <version>USD{apicurio-registry.version}</version> </dependency>
public class ClientExample { public static void main(String[] args) throws Exception { // Create a registry client String registryUrl = "https://my-registry.my-domain.com/apis/registry/v2"; 1 RegistryClient client = RegistryClientFactory.create(registryUrl); 2 } }