服務(wù)端拿到的客戶端請(qǐng)求都是 Request
類型鹰霍,它是框架 HTTP
里面的一個(gè)類挖炬。
一個(gè) Request
實(shí)例,包好以下幾個(gè)基本屬性:
public var method: Method
public var uri: URI
public var parameters: Node
public var headers: [HeaderKey: String]
public var body: Body
public var data: Content
Vapor支持的 HTTP
請(qǐng)求方法包括:
public enum Method {
case delete
case get
case head
case post
case put
case connect
case options
case trace
case patch
case other(method: String)
}
URI
例如一個(gè)HTTP請(qǐng)求:https://www.google.com/search?query=vapor#fragments
它對(duì)應(yīng)的屬性的值如下:
let scheme = request.uri.scheme; // https
let host = request.uri.host; // www.google.com
let path = request.uri.path; // /search
let query = request.uri.query; // query=vapor
let fragment = request.uri.fragment; // fragments
Headers
可以通過 request.headers["key"]
來獲取對(duì)應(yīng)的請(qǐng)求頭部信息逼庞,例如:
let contentType = request.headers["Content-Type"];
let token = request.headers["Authorization"];
請(qǐng)求體
拿到客戶端傳過來的值有多種方法宵晚,可以是:
- request.data["key"]
- request.query?["key"]
- request.parameters["key"]
- request.body
- request.json["key"]
request.data["key"]
是常用的獲取傳值的方法。