akka-http: Cómo configurar encabezados de respuesta

Tengo una ruta de la siguiente manera:

val route = {
    logRequestResult("user-service") {
      pathPrefix("user") {
        get {
          respondWithHeader(RawHeader("Content-Type", "application/json")) {
            parameters("firstName".?, "lastName".?).as(Name) { name =>
              findUserByName(name) match {
                case Left(users) => complete(users)
                case Right(error) => complete(error)
              }
            }
          }
        } ~
          (put & entity(as[User])) { user =>
            complete(Created -> s"Hello ${user.firstName} ${user.lastName}")
          } ~
          (post & entity(as[User])) { user =>
            complete(s"Hello ${user.firstName} ${user.lastName}")
          } ~
          (delete & path(Segment)) { userId =>
            complete(s"Hello $userId")
          }
      }
    }
  }

El tipo de contenido de mi respuesta siempre debe serapplication/json como lo he establecido para elget solicitud. Sin embargo, lo que obtengo en mis pruebas estext/plain. ¿Cómo configuro el tipo de contenido correctamente en la respuesta?

En una nota al margen, la documentación akka-http es una de las piezas de basura más inútiles que he visto. Casi todos los enlaces al código de ejemplo están rotos y sus explicaciones simplemente indican lo obvio. Javadoc no tiene un ejemplo de código y no pude encontrar su base de código en Github, por lo que aprender de sus pruebas unitarias también está fuera de discusión.

Respuestas a la pregunta(1)

Su respuesta a la pregunta