2 votes

Rendre le plugin jQuery JSON-RPC compatible avec GAE ProtoRPC

Je suis en train d'essayer de faire fonctionner ces deux bibliothèques ensemble. Mais je ne suis pas sûr qu'elles puissent se connecter directement. Avant d'utiliser le plugin JSON-RPC, je l'ai fait avec succès avec la fonctionnalité standard $.ajax. Pourriez-vous s'il vous plaît me donner un court exemple de ce à quoi devrait ressembler une fonction côté client et le point d'entrée pour cela du côté GAE.

Ou peut-être devrait-il y avoir une bibliothèque spéciale jQuery ProtoRPC créée pour faciliter ce travail?

Page d'accueil du plugin JSON-RPC

4voto

Drew Sears Points 10951

ProtoRPC n'utilise pas le format de message JSON-RPC. Il utilise un format plus simple où chaque méthode API fournit son propre point de terminaison, plutôt qu'un point de terminaison qui prend un nom de méthode en tant que partie du dictionnaire de requête.

Voici l'exemple qu'ils fournissent pour $.ajax:

$.ajax({url: '/hello.hello',
          type: 'POST',
          contentType: 'application/json',
          data: '{ my_name: Bob }',
          dataType: 'json',
          success: function(response) {
            // La réponse est { hello: "Bonjour, Bob!" }
            alert(response.hello);
          }
         });

Avez-vous vraiment besoin d'une bibliothèque jQuery spéciale pour cela? Je ne suis pas sûr que cela puisse être beaucoup plus simple.

3voto

Rafe Kaplan Points 325

Nous avons définitivement besoin de développer une bibliothèque protorpc à usage général pour les utilisateurs. Ensuite, il serait préférable d'écrire un plugin jquery qui fonctionne avec celle-ci.

J'avais en fait pensé à trouver un moyen pour que ProtoRPC prenne en charge JSON-RPC en tant que protocole séparé, cependant il peut y avoir certaines choses à propos de JSON-RPC qui le rendent incompatible avec ProtoRPC. Deux choses :

  • Les requêtes JSON permettent une liste de types arbitraires dans ses paramètres. ProtoRPC prend un seul type bien défini.

  • Les champs et les listes JSON peuvent contenir des types arbitraires. Les champs et les listes ProtoRPC ne peuvent contenir qu'un seul type.

J'aimerais avoir une meilleure réponse pour vous.

0voto

jaffamcneill Points 92

Je travaille sur la même idée, et j'ai posté une question similaire ici.

J'ai trouvé que ProtoRPC renvoie une réponse JSON si votre requête a le ContentType application/json, et jqGrid produira cela si vous incluez ajaxGridOptions: { contentType: 'application/json; charset=utf-8' }, dans vos options de grille, mais cela laisse encore le problème que ProtoRPC n'accepte qu'un seul paramètre bien défini, tandis que jqGrid tente par défaut de télécharger environ 5 paramètres au format d'URL, même lorsque vous le définissez sur POST au lieu de GET.

J'essaie actuellement d'utiliser le plugin grid.postext.js pour contourner ce problème, jusqu'à présent sans succès.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X