Query Parameters
Request query parameters can be accessed either as a dictionary or using the extract
syntax which throws instead of returning an optional.
Optional Syntax
Optional syntax is the easiest way to handle optional query parameters.
drop.get("comments") { request in
if let rating = request.query?["rating"]?.int {
return "You requested comments with rating greater than #\(rating)"
}
return "You requested all comments"
}
Extract Syntax
Extract syntax might be useful to enforce the presence of query parameters and throw an exception if they are not present.
To use this syntax first we need to ensure the query object is present with a guard
.
drop.get("comments") { request in
guard let rating = request.query?["rating"]?.int else {
throw Abort.custom(status: .preconditionFailed, message: "Please include a rating")
}
return "You requested comments with rating greater than #\(rating)"
}