// Metadata created by nebel
// ParentAssemblies: assemblies/getting-started/as_installing-the-registry.adoc

[id="writing-registry-sdk_{context}"]
= Writing {registry} SDK applications

[role="_abstract"]
You can write a client application to manage artifacts stored in {registry} by using one of the {registry} SDKs.

== Using the {registry} Java SDK

.Prerequisites
* {registry} is installed and running in your environment.
* You have created a Maven project for your Java client application. For more details, see https://maven.apache.org/index.html[Apache Maven].

.Procedure
. Add the following dependency to your Maven project:
+
[source,xml,subs="+quotes,attributes"]
----
<dependency>
    <groupId>io.apicurio</groupId>
    <artifactId>apicurio-registry-java-sdk</artifactId>
    <version>${apicurio-registry.version}</version>
</dependency>
----

. Create the {registry} client as follows:
+
[source,java,subs="+quotes,attributes"]
----
import io.vertx.core.Vertx;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/v3"; <1>
        Vertx vertx = Vertx.vertx(); <2>
        VertXRequestAdapter vertXRequestAdapter = new VertXRequestAdapter(vertx);
        vertXRequestAdapter.setBaseUrl(REGISTRY_URL);

        RegistryClient client = new RegistryClient(vertXRequestAdapter); <3>

        // Use client here

        vertx.close(); <4>
    }
}
----
+
<1> If you specify an example {registry} URL of `\https://my-registry.my-domain.com`, the client will automatically append `/apis/registry/v3`.
<2> Create a new Vertx object (needed by the VertxRequestAdapter)
<3> For more options when creating a {registry} client, see the Java client configuration in the next section.
<4> When you are done with the client, close the Vertx object to free its resources.

When the client is created, you can use all of the operations available in the {registry} REST API in the client. For more details, see the {registry-rest-api}.

[role="_additional-resources"]
.Additional resources
* For an open source example of how to use and customize the {registry} client, see the https://github.com/Apicurio/apicurio-registry/tree/main/examples[Apicurio Registry REST client demonstration].

* For details on how to use the {registry} Kafka client serializers/deserializers (SerDes) in producer and consumer applications, see {kafka-client-serdes}.

== Using the {registry} Typescript SDK

TBD

== Using the {registry} Python SDK

TBD

== Using the {registry} Golang SDK

TBD
