Я пытаюсь передать запрос POST API REST, разработанный с помощью Play! (2.5) объект, который я хотел бы использовать Scala Graph (из зависимости от графика). Похоже, что на графике уже есть методы сериализации/десериализации JSON, основанные на lift-json, но я не уверен, как «подключить» это к библиотеке Play Json. До сих пор я использовал неявные преобразователи (с методами Reads/Writes), но мне бы хотелось, чтобы не писать собственные методы для части графика, так как она уже является частью самой библиотеки.Scala Graph JSON с Play Framework
Например, скажем, у меня есть этот код:
import java.util.UUID
import scalax.collection.Graph
case class Task(
id: UUID,
status: String)
case class Stuff(
id: UUID = UUID.randomUUID(),
name: String,
tasks: Option[Graph[Task, DiEdge]])
implicit val stuffWrites: Writes[Stuff] = (
(JsPath \ "id").write[UUID] and
(JsPath \ "name").write[String]
)(unlift(Stuff.unapply))
implicit val stuffReads: Reads[Stuff] = (
(JsPath \ "id").read[UUID] and
(JsPath \ "name").read[String]
)(Stuff.apply _)
implicit val taskWrite: Writes[Task] = (
(JsPath \ "id").write[UUID] and
(JsPath \ "status").write[String]
)(unlift(Task.unapply))
implicit val taskReads: Reads[Task] = (
(JsPath \ "id").read[UUID] and
(JsPath \ "status").read[String]
)(Task.apply _)
Я скучаю часть сериализовать график и воспитание детей. Должен ли я переписать все с нуля, или я могу полагаться на методы toJson/fromJson из scalax.collection.io.json?
Спасибо! В самом деле, я видел это, когда вчера перечитывал документацию Play. Но я все еще пропущу часть о том, как бороться с графиком Scala :-). – CanardMoussant
Ну, вы можете написать implicits для отсутствующих типов, и в этих классах возвратить String, обработанную с помощью Lift ... или полностью переключиться на Lift. В противном случае вам придется найти/написать новый парсер. – Atais
Я изо всех сил стараюсь сделать это, к сожалению. Я отправлю что-то здесь, если мне удастся что-то сделать. – CanardMoussant