Comme nous le savons tous, un service Web ReST ne peut pas maintenir l'état - c'est un problème pour moi maintenant quand je considère de grandes transactions de base de données et je me demande si vous pouvez aider.REST et grandes requêtes de base de données
Mon service Web ReST a un rôle majeur: effectuer des opérations CRUD sur une base de données. Le problème est que je dois interroger une table avec des milliers de lignes et la renvoyer au client en XML - ce n'est pas bon. Il est très inefficace de continuer à demander des milliers d'enregistrements MAIS vous ne pouvez pas effectuer de transactions partielles (c'est-à-dire en utilisant le mot clé ROWNUM dans Oracle) avec un service Web REST. Alors, comment obtenez-vous autour de ça?
Une façon possible d'obtenir des enregistrements à la fois d'une table 100 serait:
http://mywebservice/employees/0/100
J'occupe l'état pour la dernière demande présentée soit 100
la demande suivante serait:
http://mywebservice/employees/101/200
et ainsi de suite. Mais est-ce strictement reposant?
En quoi ORACLE est-il spécifique? Le client doit conserver l'état et doit envoyer des données telles que le décalage, la commande et le nombre de lignes qu'il souhaite renvoyer. Si le client veut toutes les données, vous ne pouvez rien faire à ce sujet. Donc, le client devrait faire tout le travail. Ou est-ce que quelque chose me manque? Pouvez-vous poster un échantillon exact? – Christian
Quel est le problème? Que la table est grande? Ou que le sous-ensemble retourné est grand? Ou que vous ne pouvez pas retourner des sous-ensembles de données? – Ronnis
@Waxolunist - Ce n'est pas vraiment spécifique à Oracle Je l'ai juste utilisé comme exemple. Je peux convenir que le client devrait faire tout le travail et tenir l'état et former une URL en conséquence - mais il y a un contre-argument que le client ne devrait pas devoir connaître une tonne d'information pour former une URL valide - il devrait être sinon, je pense que vous marchez dans un territoire non reposant. – Vidar