Как обслуживать HTTP 400 при отсутствии параметров местоположения? - PullRequest
2 голосов
/ 11 марта 2020

Рассмотрим этот простой ktor Настройка сервера

@Location("/user") data class User(val id: Long)

fun Application.module(testing: Boolean = false) {
    install(Locations)
    routing {
        get<User> {
            call.respondText("User[id: ${id}]")
        }
    }
}

Получение /user?id=123 работает нормально, что приводит к User [id 123].

Однако получение /user приводит к HTTP 404 но HTTP 400 здесь имеет гораздо больше смысла.

Как я могу

  1. Служить 400 вместо 404 в таком случае?
  2. Присоединить пользовательский обработчик ошибок для отсутствующих параметров запроса, чтобы я мог предоставить клиентам информацию о том, что они ошиблись?

sidenote: я также заполнил проблему в репозитории ktor github для этого .

Заранее спасибо!

...