// Actual Responder public ActionResult Index(string version, string modelname, string parameters) { string data = string.Empty; // Key Api Key First string key = Request.QueryString["key"]; ApiResponse <object> FailedKeyResponse = new ApiResponse <object>(); if (!AuthenticateKey(key, FailedKeyResponse)) { data = MerchantTribe.Web.Json.ObjectToJson(FailedKeyResponse); } else { // Create Handler IRestHandler handler = RestHandlerFactory.Instantiate(version, modelname, MTApp); // Read Posted JSON string postedString = string.Empty; Stream inputStream = Request.InputStream; if (inputStream != null) { StreamReader rdr = new StreamReader(inputStream); postedString = rdr.ReadToEnd(); } switch (Request.HttpMethod.ToUpperInvariant()) { case "GET": data = handler.GetAction(parameters, Request.QueryString); break; case "POST": data = handler.PostAction(parameters, Request.QueryString, postedString); break; case "PUT": data = handler.PutAction(parameters, Request.QueryString, postedString); break; case "DELETE": data = handler.DeleteAction(parameters, Request.QueryString, postedString); break; } } // Return Result (or text formatted result) if (Request.QueryString["apiformat"] == "text") { return(new RawResult(data, "text/html")); } return(new PreJsonResult(data)); }