scala - Return JSON errors in akka-http API -


in api i'm writing, want take , return json, in cases of errors. i'm trying figure out how preserve of default rejectionhandler behavior, convert status codes , text json object. default behavior specified within function calls, rather data structure, seems way convert httpentity of result produces. there simple way this?

you can write in httpservice

private val defaultrejectionhandler = rejectionhandler.default  implicit def myrejectionhandler =   rejectionhandler.newbuilder()     .handleall[rejection] { rejections ⇒      def prefixentity(entity: responseentity): responseentity = entity match {       case httpentity.strict(contenttype, data) => {         import spray.json._         val text = errorresponse(0, "rejection", data.utf8string).tojson.prettyprint         httpentity(contenttypes.`application/json`, text)       }       case _ =>         throw new illegalstateexception("unexpected entity type")     }      mapresponseentity(prefixentity) {       defaultrejectionhandler(rejections).getorelse {         complete(statuscodes.internalservererror)       }     }   }.handlenotfound {     complete(statuscodes.forbidden -> errorresponse(statuscodes.notfound.intvalue, "notfound", "requested resource not found"))   }.result() 

where errorresponse possibly

case class errorresponse(error: errorinfo) case class errorinfo(code: int, `type`: string, message: string) 

for can defined json marshallers.


Comments

Popular posts from this blog

Delphi XE2 Indy10 udp client-server interchange using SendBuffer-ReceiveBuffer -

Qt ActiveX WMI QAxBase::dynamicCallHelper: ItemIndex(int): No such property in -

Enable autocomplete or intellisense in Atom editor for PHP -