[Vapor3] GET/POST リクエストのパラメータを取得する
[09/12, 2018] |
Vapor3でGET/POST リクエストのパラメータを取得するを忘れないために、自分用にまとめました。
Getパラメータ
Getパラメータの名前を指定して取得する
"search"というパラメータがあった場合、下のように取得できる
url : https://sample.com/page?serach=keyword
if let word = req.query[String.self, at:"serach"] {
print(word) //keywrod
}
Content プロトコルを利用する
Contentのプロトコルに準拠した、classやstructをdecodeすることで取得できる。
url : https://sample.com/page?search=keyword
url : https://sample.com/page?search=keyword&option=someoption
struct GetParameter : Content {
var search : String
var option : String?
}
let parameters = try req.query.decode(GetParameter.self)
上記の例の場合、"search"は必須パラメータとなる。なのでパラメータなしで(https://sample.com/page)にアクセスするとエラーとなる。
Postパラメーター
Content プロトコルを利用する
Contentのプロトコルに準拠した、classやstructをdecodeすることで取得できる。
struct PostParameter : Content {
var search : String
var option : String?
}
let parameters = try req.content.decode(PostParameter.self)