Tomo.Log()


[Vapor3] GET/POST リクエストのパラメータを取得する

[09/12, 2018]

日本語 / English

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)