# Comment ecrire une fonctionnalité récursive d'appel avec SAND Une fonctionnalité récursive d'appel permet d'appeler avec curl une api écrite avec le FrameWork SAND.* Typiquement on peut: - faire de multiples appel à l'api (REST ou Web) grace a curl dans un seul controlleur sans passez par javascript - ainsi mieux découper les CRUD d'appel en bdd - remplacer le pattern PRG, ou mieux le découper. C'est un choix applicatif a faire lors du developpement de l'application Il existe trois façon d'appeler un appel curl `HttpMethodRequest`, tous prennent en paramètre des valeurs passées dans un tableau: ``` $data = array('a','b','c'); ``` Voici la première: ``` $request = new Response('http://myurl','myhttp1.1method'); $request->addContent($data); $request->send(); ``` Voici la seconde: ``` $request = new Response('http://myurl'); ``` avec soit la création d'un context personnalisé ``` $request->createContext('myhttp1.1method') $request->addContent($data); $request->send(); ``` Soit les methodes HTTP1.1 ``` $request->get($data); $request->post($data); $request->put($data); $request->delete($data); ``` Voici la dernière qui reste la plus facile à utiliser, pour les développeurs qui comprennent les notations chainées: ``` $request = new Response(); $request->setUrl('http://myurl')->get($data) $request->setUrl('http://myurl')->post($data) $request->setUrl('http://myurl')->put($data) $request->setUrl('http://myurl')->delete($data) ```