Ho un percorso come segue:Akka-http: Come impostare intestazioni di risposta
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")
}
}
}
}
Il tipo di contenuto della mia risposta deve essere sempre application/json
come ho in posa per la richiesta get
. Tuttavia, quello che sto ottenendo nei miei test è text/plain
. Come imposto correttamente il tipo di contenuto nella risposta?
In una nota a margine, la documentazione di akka-http è uno dei rifiuti più inutili che abbia mai visto. Quasi ogni link al codice di esempio è rotto e le loro spiegazioni indicano semplicemente l'ovvio. Javadoc non ha un esempio di codice e non sono riuscito a trovare la base di codice su Github in modo tale che l'apprendimento dai test di unità non sia più possibile.
Sono d'accordo con te sullo stato dei documenti. Devo dire che, in quanto progetto comunitario, le persone sono libere di prendere l'iniziativa per aiutarle a migliorarle. – acjay
@acjay Ci si può aspettare che gli individui contribuiscano solo dopo aver compreso bene il codice, che è gravemente ostacolato dalla documentazione esistente, scarsa. Sì, si può sempre guardare nel codice sorgente, ma, ancora una volta, questo non è per i principianti, richiede molto tempo e non dovrebbe essere necessario per la maggior parte dei problemi. Se volevano sempre che le persone guardassero il codice sorgente, non dovevano fingere di avere alcuna documentazione. –