aah Request and Response
This document provides an insights into aah Request
and Response
capabilities. So that it could be utilized effectively.
Table of Contents
Request
aah Request extends form of standard request struct. It provides necessary values (derived and processed per RFCs).
Fields
Field Name | Description |
---|---|
Scheme | Request protocol value https or http , it’s a inferred value. Know more |
Host | Value of correct Host source from HTTP request |
Method | Value of HTTP verb name, such as GET, POST, etc |
Path | Request URL Path e.g. /app/login.html |
Header | HTTP request headers |
PathParams | URL path parameters values that was defined routes.conf |
Referer | Value of HTTP header Referer or Referrer |
UserAgent | Value of HTTP header User-Agent |
IsGzipAccepted | Inferred value as bool, whether HTTP client supports Gzip compression or not. |
Methods
Method Name | Description |
---|---|
AcceptContentType | Negotiated value of HTTP Header Accept . The resolve order is URL extension, Accept header per RFC7231 and Vendor Types per RFC4288 |
AcceptEncoding | Negotiated value of HTTP Header the Accept-Encoding per RFC7231 |
ContentType | Parsed value of HTTP header Content-Type per RFC1521 |
Body | Returns the HTTP request body io.ReadCloser |
SaveFile | Saves an uploaded request multipart file for the given key into given destination file |
Locale | Negotiated value of HTTP Header Accept-Language per RFC7231 |
ClientIP | Returns remote Client IP address aka Remote IP. It parses in the order of given set of headers otherwise it uses default header set X-Forwarded-For , X-Real-IP , X-Appengine-Remote-Addr and finally http.Request.RemoteAddr |
Cookie | Returns a named cookie from HTTP request otherwise error |
Cookies | Returns all the cookies from HTTP request |
IsJSONP | Returns true if request URL query string has callback=<function_name> |
IsAJAX | Returns true if request header X-Requested-With is XMLHttpRequest otherwise false |
URL | Returns request URL instance |
Unwrap | Returns the underlying *http.Request instance of Go HTTP server, direct interaction with raw object is not encouraged. |
It is highly recommended to use Auto Parse and Bind feature on controller action arguments. Non-controller (like middleware, etc.) location use following method appropriately.
Method Name | Description |
---|---|
PathValue | Returns value for given Path param key otherwise empty string. For eg.: /users/:userId => PathValue("userId") |
QueryValue | Returns value for given URL query param key otherwise empty string |
QueryArrayValue | Returns array value for given URL query param key otherwise empty string slice |
FormValue | Returns value for given form key otherwise empty string |
FormArrayValue | Returns array value for given form key otherwise empty string slice |
FormFile | Returns the first file for the provided form key otherwise returns error. It is caller responsibility to close the file |
Response
aah resposne writer implements interfaces http.ResponseWriter
, http.CloseNotifier
, http.Flusher
, http.Hijacker
, http.Pusher
and io.Closer
.
And captuers following details -
Status()
- returns response status codeBytesWritten()
- returns the total number of bytes written into responseUnwrap()
- returns the underlyingResponseWriter
It is highly recommended to use Reply Builder to compose response.