# 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)
```