I'm trying to make a Route Builder in swift using Alamofire (3.0) and I have succeded for all my GET requests, but when I try to make a POST request, for example, I still get the same responses of the GET method.
My API Routes are:
/users //GET -> return list of users /users //POST -> create new user with the parameters sent
When I use Postman everything works fine.
Here is my Router code:
import Foundation import Alamofire enum UserRouter: URLRequestConvertible{ static let baseURL = NSURL(string: "http://192.168.0.106/users")! case Users case CreateUser([String: AnyObject]) case ReadUser(Int) case UpdateUser(Int, [String: AnyObject]) case DestroyUser(Int) var URL: NSURL { return UserRouter.baseURL.URLByAppendingPathComponent(route.path) } var route: (path: String, parameters: [String: AnyObject]?) { switch self{ case .Users: return ("/", nil) case .ReadUser(let userID): return ("/\(userID)", nil) case .CreateUser(let userInfo): return ("/", userInfo) case .UpdateUser(let userID, let userInfo): return ("/\(userID)", userInfo) case .DestroyUser(let userID): return ("/\(userID)", nil) } } var method: Alamofire.Method{ switch self{ case .Users: return .GET case .ReadUser: return .GET case .CreateUser: return .POST case .UpdateUser: return .PUT case .DestroyUser: return .DELETE } } var URLRequest: NSMutableURLRequest { let httpRequest = NSMutableURLRequest(URL: URL) httpRequest.HTTPMethod = method.rawValue switch self{ case .CreateUser (let userInfo): print("creating") print(httpRequest.HTTPMethod) //Print: POST on CreateUser, like it should. return Alamofire.ParameterEncoding.JSON.encode(httpRequest, parameters: userInfo).0 default: return Alamofire.ParameterEncoding.URL.encode(httpRequest, parameters: (route.parameters ?? [ : ])).0 } } } func testRoute(){ Alamofire.request(UserRouter.CreateUser(["name":"test"])).responseJSON{ (response) in switch response.result{ case .Success(let data): print (data) //Error here, printing GET response instead of my API response for creating users (POST). case .Failure: print("fail") } } }