<div dir="ltr">Hi all,<div><br></div><div>Sorry for several emails today since they are different topics. I think that it would be better to split them into different emails. Thanks in advance if you read those long emails.</div>
<div><br></div><div>Let us start this topic with the below example again:<br></div><div><br></div><div><div>```</div><div>base_url = '<a href="http://localhost:8080">http://localhost:8080</a>'</div><div>r = requests.Session()</div>
<div>a = r.get(base_url + "?__login=admin&__password=admin")</div><div>print a.status_code</div><div><br></div><div>url = base_url + "/rqlio/1.0"</div><div><br></div><div>args = [('INSERT Study ST: ST identifier "%s"' % study_id, {}),</div>
<div>              ('INSERT Subject SU: SU identifier "%s"' % subject_id, {}),</div><div>              ('SET SU related_studies ST WHERE ST eid %(t)s, SU eid %(u)s',</div><div>              {'t': '__r0', 'u':'__r1'}),]</div>
<div><br></div><div>a = requests.post(</div><div>                url,</div><div>                data=json.dumps(args),</div><div>                headers={'Content-Type': 'application/json'},</div><div>                verify=False,</div>
<div>                timeout=3)</div><div>```</div></div><div><br></div><div>We assume that Cubicweb server runs normally but with unstable network. We assume that we lose the response from server and we get a requests timeout error. Without understanding what is "args", how could I verify if my post is executed correctly on the sever? (If I understand "args", for example here, I can select entity to verify if I manage to insert entity. But, at the low level design, it is hard to "understand" args.)</div>
<div><br></div><div>Considering current cubicweb development , any suggestion and any solution to this problem?<br></div><div><br></div><div>In my opinion,  a simple webservice API could solve this problem :</div><div><br>
</div><div>```</div><div>    get_last_executed_rqls_and_res()</div><div>```<br></div><div><br></div><div>It returns the "last executed rqls", "timestamp", "rql responses (or error message)" according to current http session. </div>
<div><br></div><div>Another more sophisticated proposition of APIs :</div><div><br></div><div>```<br></div><div>  id = get_new_rql_task_id()</div><div>  if id:</div><div>    run_rqls(id, rqls)</div><div>    res = get_reponse(id)</div>
<div>```</div><div><br></div><div>Thanks again for reading this email.</div><div><br></div><div>Regards,</div><div>Jinpeng</div><div><br></div><div><br></div></div>