Hi,
I am having the same issue. Any REST API call returns only the following results when successful:
Common response for compile/create, backtests/create, backtests/read:
{"success":true,"errors":[],"ip":"144.76.73.133"}
Expected responses:
compile/create: {"success":true,"errors":[],"compileId": "...","log" :"..."}
backtests/create: {"success":true,"errors":[],"backtestId": "..."}
backtests/read: {"success":true,"errors":[],"progress" : "...","processingTime" : ..., "results" : ...}
Code below, based on Ray's code in the comments above:
Boolean wSuccess = false;
wSuccess = PostApiCompilerCreate(228116, 241);
//wSuccess = PostApiBacktestCreate(228116, 241, "30024ef45ecd03f3e994b05cf59a5188", "REST Backtest");
//wSuccess = PostApiBacktestRead("20b44532add14add4212914c0a54cdd6", 241);
private Boolean PostApiCompilerCreate(int projectId, int leanVersionId)
{
return PostApi("compiler/create", new {projectId = projectId, versionId = leanVersionId});
}
private Boolean PostApiBacktestCreate(int iProjectId, int leanVersionId, string iCompileId, string iBacktestName)
{
return PostApi("Backtests/create", new {projectId = iProjectId, versionId = leanVersionId, compileId = iCompileId, backtestName = iBacktestName});
}
private Boolean PostApiBacktestRead(string iBacktestId, int leanVersionId)
{
return PostApi("Backtests/read", new {backtestId = iBacktestId, versionId = leanVersionId});
}
private Boolean PostApi(string requestString, System.Object mParameters)
{
var client = new RestClient("https://www.quantconnect.com/api/v1" )
{
Authenticator = new HttpBasicAuthenticator("", "")
};
var request = new RestRequest(requestString, Method.POST);
var requestStr = JsonConvert.SerializeObject(mParameters);
request.AddParameter("application/json", requestStr, ParameterType.RequestBody);
Log("Posting Backtests/create "+requestStr);
IRestResponse response = client.Execute(request);
var json = response.Content;
JObject o = JObject.Parse(json);
Boolean success = false;
Log("RequestStr = " + requestStr);
Log("Response content = " + response.Content);
Log("Parsed Response = " + o);
try
{
success = o["success"].ToString().ToLower() != "false";
//compileId = o["compileId"].ToString();
}
catch (Exception err)
{
Log("Invalid JSON Response Received. Missing expected values 'success'. "+err.Message);
return false;
}
if (!success)
{
Log("Server response success = false");
return false;
}
Log("Success!");
// Full JSON Debug
Log(o.ToString());
return true;
}