2010-07-08 6 views
0

Si vous essayiez de concevoir une liaison de langage à une API web reposante, comment le feriez-vous? Que prendriez-vous en considération? Quelles ressources consulteriez-vous en premier? Souhaitez-vous essayer de se moquer de l'interface web entrelacé 1: 1 ou vous essaieriez d'utiliser vos idiomes linguistiques à la place? Comment éviteriez-vous de faire des requêtes HTTP excessives? EtcComment concevoir une liaison de langage à une API web?

J'ai été chargé de créer une liaison de langage pour une API web et je n'ai jamais fait quelque chose comme ça auparavant, donc j'ai pensé que je demanderais SO avant de commencer.

Répondre

2
  • Ne pas se moquer de l'interface API Web - si vous prendre la peine d'écrire une liaison native, soi-disant qu'il est si les développeurs ne ont pas besoin d'apprendre les idiomes et les paradigmes de l'API Web, et peut utiliser à la place un API qui est plus similaire à ce qu'ils sont habitués. Donc, utilisez les idiomes de la langue.

  • Prévenir les requêtes HTTP excessive avec la mise en cache

  • Si le service renvoie un code d'état d'erreur (400-599), puis les traduire en un état d'erreur natif - exceptions, codes d'erreur, peu importe.

  • assurez-vous que votre compte pour les demandes http délai ou tout simplement vieux échecs de connexion, encore une fois en lançant une exception ou de renvoyer une erreur

  • Si un service répond avec un statut de redirection 3xx, suivez automatiquement la redirection. La plupart des paradigmes programmatiques natifs ne supportent pas vraiment le concept de redirection, il suffit donc de le faire fonctionner. Enfin, la partie la plus difficile est la traduction de paradigme, de RESTful à procédural. C'est différent pour chaque cas. Fondamentalement, vous aurez besoin d'une classe (ou d'un objet) par ressource. Chaque classe prend en charge delete() et save(), et possède des getters et des setters pour des aspects spécifiques de la ressource. Vous aurez également besoin d'un moyen de vérifier l'état - sale, sauvé, etc.

(Désolé si l'arrêt de la mise en forme ici, j'écris sur mon iPad et pour une raison quelconque le site n » t afficher la barre d'outils d'édition ou l'aperçu.)

Questions connexes