Custom parsing error format

Hello,

I was wondering if there is any chance to customize response from Http -> HttpServerBluePrint. Currently for any parsing related (p.e URI too long) error it returns error’s status code with some default code’s message in text format(it uses ErrorInfo class), however I would like it to return message in Json format, or even modify returned message.
Any chance I can do that?

Thanks

Akka http 10.1.9
Response for too long URI: Illegal request, responding with status '414 Request-URI Too Long': URI length exceeds the configured limit of X characters

This rare condition is only likely to occur when a client has improperly converted a POST request to a GET request with long query information. The HTTP 414 URI Too Long response status code indicates that the URI(Uniform Resource Identifier) requested by the client is longer than the server is willing to interpret.

To resolve this problem :

  • By POST request: Convert query string to json object and sent to API request with POST.

  • By GET request: Max length of request is depend on sever side as well as client side. Most webserver have limit 8k which is configurable. On the client side the different browser has different limit. The browser IE and Safari limit to 2k, Opera 4k and Firefox 8k. This means that the max length for the GET request is 8k and min request length is 2k.

If exceed the request max length then the request truncated outside the limit by web server or browser without any warning. Some server truncated request data but the some server reject it because of data lose and they will return with response code 414 Request-URI Too Long.

Under Apache, the limit is a configurable value, LimitRequestLine. If you want to increase URL limit to 5000 characters (bytes), add the following lines to your server configuration or virtual host file.

LimitRequestLine 5000

If you want to increase maximum header length supported by Apache to 3000 characters, then add the following line.

LimitRequestFieldSize 3000