stringthen it will send that string as the response's body.
intthen it will send it as a status code.
errorthen it will set a bad request with that error as its reason.
intthen the error code is the output integer instead of 400(bad request).
structthen it sent as a JSON, when a Content-Type header is not already set.
stringthen the second output value, string, it will be the Content-Type and so on.
<T>means any struct value.