2016-04-28 7 views
0

Neu bei Scala, um mich zu beruhigen!Spray Form Daten zu Fall-Klasse

Ich benutze spray atm und verbuche Anfragen in. Ich bin auf der Suche nach den Post-Daten in eine Fall-Klasse konvertieren, aber es wirft einen Fehler could not find implicit value for parameter um: spray.httpx.unmarshalling.FromRequestUnmarshaller. Was könnte ich falsch machen? Die Dokumentation ist ein wenig verwirrend.

post { 
    entity(as[TextMessage]) { txt => 
     println(txt.body) 
     complete("") 
    } 
} 

Und mein Fall Klasse case class TextMessage(body: String, from: String)

Aus der docs diese den Schläger abarbeiten sollen.

Ideen?

Edit: Die Daten werden als JSON nicht wird es geschrieben ist geschrieben als Formulardaten application/x-www-form-urlencoded

Antwort

0

sicher, dh Sie sich, dass die JsonFormat für die Textmessage Art im Rahmen, so dass Spray cand herauszufinden, wie zu marshall, dass Art.

prüft diesen link

+0

Die Antwort nicht in JSON mir geschrieben wird ist es Formulardaten des 'application/x-www-form-urlencoded' – user3750194

0

I Formulardaten mit Spray nicht analysiert haben, damit ich weiß nicht, ob einfache Art und Weise vorhanden ist, aber ich würde formFields Direktive verwenden.

val textMessageEntity = formFields('body, 'from).as(TextMessage) 

post { 
    textMessageEntity { txt => 
     println(txt.body) 
     complete("") 
    } 
} 

Hier gibt es mehr Informationen über formFields Richtlinie: http://spray.io/documentation/1.2.2/spray-routing/form-field-directives/formFields/