Ktor — фреймворк для создания веб-приложений в Kotlin

НАВИГАЦИЯ ПО СТРАНИЦЕ

Создание проекта Ktor Пример простого приложения Запуск приложения

Ktor — это современный фреймворк для создания веб-приложений на языке Kotlin.

Он разработан JetBrains и предназначен для разработки асинхронных серверных и клиентских приложений.

Вот краткое руководство по тому, как начать использовать Ktor:

Создание проекта Ktor

  1. Создание проекта с использованием IntelliJ IDEA:

    • Выберите "File" -> "New" -> "Project..."

    • Выберите "Kotlin" в разделе "Additional Libraries and Frameworks" и затем "Ktor".

    • Следуйте инструкциям мастера создания проекта.

  2. Или создание проекта с использованием Ktor CLI:

    • Установите Ktor CLI согласно официальной документации.

    • Запустите команду ktor init MyProject для создания проекта.

Пример простого приложения Ktor

Давайте создадим простое веб-приложение с одним эндпоинтом:

import io.ktor.application.*
import io.ktor.features.ContentNegotiation
import io.ktor.features.StatusPages
import io.ktor.http.HttpStatusCode
import io.ktor.jackson.jackson
import io.ktor.request.receive
import io.ktor.response.respond
import io.ktor.routing.*
import io.ktor.server.engine.embeddedServer
import io.ktor.server.netty.Netty

data class Message(val text: String)

fun main() {
    embeddedServer(Netty, port = 8080) {
        install(ContentNegotiation) {
            jackson { }
        }

        install(StatusPages) {
            exception<Throwable> { cause ->
                call.respond(HttpStatusCode.InternalServerError, "Internal Server Error: ${cause.localizedMessage}")
            }
        }

        routing {
            route("/hello") {
                get {
                    call.respond(Message("Hello, Ktor!"))
                }
                post {
                    val message = call.receive<Message>()
                    call.respond(Message("Received: ${message.text}"))
                }
            }
        }
    }.start(wait = true)
}

В этом примере:

  • Мы создаем простой сервер, используя embeddedServer.

  • Устанавливаем некоторые основные функциональности, такие как обработка JSON с использованием Jackson.

  • Определяем два эндпоинта: /hello для GET и POST запросов.

  • Обрабатываем ошибки с использованием StatusPages.

Запуск приложения

Вы можете запустить приложение, выполнив функцию main. Затем перейдите в ваш веб-браузер по адресу http://localhost:8080/hello для проверки эндпоинта.

Ktor предоставляет множество возможностей для разработки веб-приложений, включая поддержку корутин, автоматическую сериализацию/десериализацию JSON, маршрутизацию, статические ресурсы и многое другое. Кроме того, он легко интегрируется с другими библиотеками и фреймворками Kotlin.