     var path:   String { get }
     var queryItems: [URLQueryItem]? { get }
     var parameters: [String : Any]? { get }
+    var headers: [String : String]? { get }
 }
 
 public struct JSONRequest: Request {

    public var path:   String
    public var queryItems: [URLQueryItem]?
    public var parameters: [String: Any]?
    
    public init(method: HTTPMethod, path: String, queryItems: [URLQueryItem]? = nil, parameters: [String: Any]? = nil) {
        self.method = method
        self.path = path
        self.queryItems = queryItems
        self.parameters = parameters
    }
}


        do {
            let url = try self.url(from: request)
            let method = self.method(from: request)
            return Alamofire.request(url, method: method, parameters: request.parameters, encoding: URLEncoding.default, headers: request.headers)
        } catch let error {
            throw RequestError.invalidURL(cause: error)
        }
