Connessione a FaunaDB in Kotlin

Mattepuffo's logo
Connessione a FaunaDB in Kotlin

Connessione a FaunaDB in Kotlin

Nell'articolo di oggi vediamo come connetterci a FaunaDB con Kotlin.

Per l'interrogazione del db useremo FQL.

Do per scontato la creazione della collection, dell'index e dell'API KEY.

Se usate Maven aggiungete questa dipendenza:

        <dependency>
            <groupId>com.faunadb</groupId>
            <artifactId>faunadb-java</artifactId>
            <version>4.2.0</version>
            <scope>compile</scope>
        </dependency>

Qui sotto il codice:

import com.faunadb.client.FaunaClient
import com.faunadb.client.query.Language
import com.faunadb.client.types.Value
import java.io.IOException
import java.util.concurrent.ExecutionException

fun main(args: Array<String>) {
    val key = "API_KEY"
    val endPoint = "https://db.fauna.com/"

    try {
        val client = FaunaClient.builder()
            .withSecret(key)
            .withEndpoint(endPoint)
            .build()

        val value = client.query(
            Language.Map(
                Language.Paginate(
                    Language.Match(Language.Index("allMusica"))
                ).size(9999),
                Language.Lambda("X", Language.Get(Language.Var("X")))
            )
        ).get()

        val allDocuments = value.at("data").asCollectionOf(
            Value::class.java
        ).get()

        for (current in allDocuments) {
            val titolo = current.at("data", "titolo").to(String::class.java).get()
            val autore = current.at("data", "autore").to(String::class.java).get()

            println("titolo= $titolo")
            println("autore= $autore")
        }
    } catch (ex: ExecutionException) {
        println(ex.message)
    } catch (ex: InterruptedException) {
        println(ex.message)
    } catch (ex: IOException) {
        println(ex.message)
    }
}

Eseguiamo la query, e poi trasformiamo il JSON in un oggetto Collection.

Dopo di che iteriamo sulla collezione, ed estraiamo i dati che ci interessano.

Enjoy!


Condividi

Commentami!