Akka-http: Accepter et gérer le type de contenu

J'essaie à Akka-http et j'espère que quelqu'un peut jeter de la lumière sur les questions suivantes:

  1. Comment créer des itinéraires différents basés sur l'en-tête accept: dans la demande? Par exemple, je veux un chemin de code pour gérer les "json" et à manipuler "xml" demandes (par défaut à "json" si l'en-tête est manquante)
  2. Dans les cas où je ne veux pas le contentType être déduit, comment dois-je le préciser? Par exemple, dans le code ci-dessous j'essaie d'exécuter le json par compactPrint() mais cela change en une chaîne, d'où "text/plain". Je veux remplacer et de dire au client qu'il est toujours en json.

Mon code est quelque chose comme cela;

...
path("api") {
          get {
              complete {
                getStuff.map[ToResponseMarshallable] {
                  case Right(r) if r.isEmpty => List[String]().toJson.compactPrint
                  case Right(r) => r.toJson.compactPrint
                  case Left(e) => BadRequest -> e
                }
              }
          }
        }
...

La réponse dans ce cas est text/plain, depuis compactPrint crée une chaîne de caractères.
critique très bienvenue. 😉

source d'informationauteur Will I Am