Request
All request information like posted data, uploaded files, headers, etc; can be accessed using the context.
URL Parameters
URL path parameters can be defined by prefixing the parameter name with :.
Here is an example of defining a path parameter
router.Get("users/:id", controllers.GetUsers)
Here is an example of accessing it
func GetUsers(c *core.Context) {
    userID := c.GetPathParam("id")
}
Query and form's post parameters
Query parameters are passed to the URL like this /users?name=jack, both query parameters and the form post data can be accessed with the function GetRequestParam("PARAM_NAME"), here is an example:
func listUsers(c *core.Context) {
    name := c.GetRequestParam("name")
    PostParam:= c.GetRequestParam("PARAM_KEY")
}
Form uploaded files:
Here is how you can access the form uploaded file
func saveFile(c *core.Context) {
    fileInfo, err := c.GetUploadedFile("uploaded-file-key-name")
    fileInfo.FullPath // full path to the temp location of the uploaded file
    fileInfo.Name // the name of the file
}
Where:
fileinfo is an object that has general information about the uploaded file, here is all the file information that it provides:
- fileInfo.FullPath: full path to the temp location of the uploaded file
 - fileInfo.Name: the file name without the path
 - fileInfo.NameWithoutExtension: the file name without extension
 - fileInfo.Extension: the extension of the file
 - fileInfo.Size: the file size in bytes
 
Save uploaded file:
Goffee stores all uploaded files in a temporary location, to save it to a specific location, you can simply move it using the function MoveFile(srcPath, destPath, newFilename), here is how:
func SaveFile(c *core.Context) {
    fileinfo, err := c.GetUploadedFile("uploaded-file-key-name")
    err := c.MoveFile(fileinfo.FullPath, "./storage/files", "myfile.pdf")
}
Header Data:
Here is how you can get headers:
func ListTodos(c *core.Context) {
    realIPAddress := c.GetHeader("X-Forwarded-For")
}