Imaginez une vue de table répertoriant certaines recettes. Chaque fois que l'utilisateur appuie sur une recette, une nouvelle vue de table est chargée pour répertorier les ingrédients de la recette.asynchrone sans état API
Pour obtenir les informations, je suis asynchrone appeler une API REST en utilisant:
NSURLRequest *request = [NSURLRequest requestWithURL:url
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval:30];
Lorsque les robinets utilisateur sur une recette, un appel à l'API est faite pour obtenir des ingrédients de la recette. Cependant, une fois dans la nouvelle vue (qui liste les ingrédients) et avant que la réponse soit reçue, l'utilisateur peut revenir en arrière et sélectionner une nouvelle recette.
Dans ce cas, je vais recevoir deux réponses; un pour chaque demande. Le problème est que je ne sais pas à quelle demande est cette réponse et je vais rafraîchir l'interface utilisateur avec un mauvais contenu d'une mauvaise réponse.
Je ne sais pas quelle est la bonne approche dans ce cas. Je pense à inclure dans la réponse chaque paramètre de demande. Donc, si je suis, par exemple, en utilisant l'API pour rechercher certains termes, nous disons « foo », je vais inclure le terme dans la réponse aussi, par exemple:
Demande:
http://domain.com/api/search?term=foo
réponse
{
"requestType": "search",
"term": "foo",
"result" : "a foo result"
}
il me semble étrange d'inclure chaque paramètre de demande chaque réponse, mais elle est la seule solution que je trouve à crea une API apatride prête à être appelée asynchrone.
¿Y a-t-il un autre moyen d'accomplir cela?
(J'utilise un modèle de délégué assignant un objet à chaque requête qui est appelée quand la réponse est reçue Le problème est, dans l'exemple des recettes, que la vue de table d'ingrédients est réutilisée chaque ingrédient de recette de temps).