Kotlin e Javascript

1. Panoramica

Kotlin è un linguaggio di programmazione di nuova generazione sviluppato da JetBrains. Sta guadagnando popolarità con la comunità di sviluppo Android in sostituzione di Java.

Un'altra interessante caratteristica di Kotlin è il supporto di JavaScript lato server e lato client. In questo articolo, discuteremo come scrivere applicazioni JavaScript lato server utilizzando Kotlin.

Kotlin può essere trasferito (codice sorgente scritto in una lingua e trasformato in un'altra lingua) in JavaScript. Offre agli utenti la possibilità di scegliere come target JVM e JavaScript utilizzando la stessa lingua.

Nelle prossime sezioni svilupperemo un'applicazione node.js utilizzando Kotlin.

2. node.js

Node.js è un ambiente di runtime multipiattaforma snello, veloce e per JavaScript. È utile sia per applicazioni server che desktop.

Cominciamo impostando un ambiente e un progetto node.js.

2.1. Installazione di node.js

Node.js può essere scaricato dal sito Web di Node. Viene fornito con il gestore di pacchetti npm. Dopo l'installazione dobbiamo impostare il progetto.

Nella directory vuota, eseguiamo:

npm init

Chiederà alcune domande sul nome del pacchetto, la descrizione della versione e un punto di ingresso. Fornire "kotlin-node" come nome , "Kotlin Node Example" come descrizione e "crypto.js" come entrypoint . Per il resto dei valori, manterremo il valore predefinito.

Questo processo genererà un pacchetto. json file.

Dopodiché, dobbiamo installare alcuni pacchetti di dipendenze:

npm install npm install kotlin --save npm install express --save

Questo installerà i moduli richiesti dalla nostra applicazione di esempio nella directory del progetto corrente.

3. Creazione di un'applicazione node.js utilizzando Kotlin

In questa sezione, creeremo un server API crittografico utilizzando node.js in Kotlin . L'API recupererà alcuni tassi di criptovaluta auto-generati.

3.1. Impostazione del progetto Kotlin

Ora configuriamo il progetto Kotlin. Useremo Gradle qui, che è l'approccio consigliato e facile da usare. Gradle può essere installato seguendo le istruzioni fornite sul sito Gradle .

Successivamente, genera un progetto Gradle iniziale utilizzando l'attività init. Selezionare il tipo di progetto "base", Kotlin per il linguaggio di implementazione, Groovy come DSL dello script di compilazione, quindi immettere "kotlin-node" per il nome del progetto e "baeldung" come nome del pacchetto.

Questo creerà un file build.gradle . Sostituisci il contenuto di questo file con:

buildscript { ext.kotlin_version = '1.4.10' repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } group 'com.baeldung' version '1.0-SNAPSHOT' apply plugin: 'kotlin2js' repositories { mavenCentral() } dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib-js:$kotlin_version" testCompile "org.jetbrains.kotlin:kotlin-test-js:$kotlin_version" } compileKotlin2Js.kotlinOptions { moduleKind = "commonjs" outputFile = "node/crypto.js" }

Ci sono due punti importanti da evidenziare nel file build.gradle . Per prima cosa, applichiamo il plugin kotlin2js per eseguire la traspolazione.

Quindi, in KotlinOptions , impostiamo moduleKind su " commonjs" per lavorare con node.js. Con l' opzione outputFile , controlliamo dove verrà generato il codice transpilato.

Nota: assicurati che ext.kotlin_version nel file build.gradle corrisponda a quello nel file package.json .

3.2. Creazione di un'API

Iniziamo a implementare la nostra applicazione creando la cartella sorgente src / main / kotlin, quindi la struttura del pacchetto com / baeldung / kotlinjs.

In questo pacchetto creiamo il file CryptoRate.kt .

In questo file, dobbiamo prima importare la funzione require e quindi creare il metodo principale :

external fun require(module: String): dynamic fun main(args: Array) { }

Successivamente, importiamo i moduli richiesti e creiamo un server che ascolta sulla porta 3000:

val express = require("express") val app = express() app.listen(3000, { println("Listening on port 3000") }) 

Infine, aggiungiamo l'endpoint API "/ crypto". Genererà e restituirà i dati :

app.get("/crypto", { _, res -> res.send(generateCrypoRates()) }) data class CryptoCurrency(var name: String, var price: Float) fun generateCryptoRates(): Array { return arrayOf( CryptoCurrency("Bitcoin", 90000F), CryptoCurrency("ETH",1000F), CryptoCurrency("TRX",10F) ); }

Abbiamo utilizzato il modulo express node.js per creare l'endpoint API.

4. Eseguire l'applicazione

L'esecuzione dell'applicazione sarà un processo in due parti. Dobbiamo trasferire il codice Kotlin in JavaScript prima di poter avviare la nostra applicazione con Node.

Per creare il codice JavaScript, utilizziamo l'attività di compilazione Gradle:

./gradlew build 

Questo genererà il codice sorgente nella directory del nodo .

Successivamente, eseguiamo il file di codice generato crypto.js utilizzando Node.js:

node node/crypto.js 

Questo avvierà il server in esecuzione sulla porta 3000 . Nel browser accediamo all'API invocando // localhost: 3000 / crypto per ottenere questo risultato JSON:

[ { "name": "Bitcoin", "price": 90000 }, { "name": "ETH", "price": 1000 }, { "name": "TRX", "price": 10 } ]

In alternativa, possiamo utilizzare strumenti come Postman o SoapUI per utilizzare l'API.

5. conclusione

In questo articolo, abbiamo imparato come scrivere applicazioni node.js usando Kotlin.

Abbiamo creato un piccolo servizio in pochi minuti senza utilizzare alcun codice boilerplate.

Come sempre, gli esempi di codice possono essere trovati su GitHub.