2010-09-07 7 views
1

J'ai une question concernant les ressources RESTful similaires à cet autre question.RESTful préoccupations

Nous développons également une application iphone qui accèdera aux services REST mais l'une des préoccupations est que le premier écran fasse quelques appels au service et qu'il ne devrait en être qu'un (A dto des ressources). J'essaie de garder le service aussi RESTful que possible, donc je me demandais comment y accéder nettoyage.

Je pensais considérer l'iphone (ou tout autre périphérique) comme une ressource et que cette dto est une propriété. L'URI serait quelque chose comme ceci:

example.com/rest/Device/iphone/HomeScreen 

Est-ce que quelque chose comme ceci serait acceptable ou existe-t-il une meilleure solution?

Merci Tony

Répondre

1

Ce que vous faites à mon humble avis est tout à fait acceptable. Les principes REST sont beaucoup plus faciles à appliquer lorsque vos ressources sont plus axées sur les exigences de l'interface utilisateur du client.

Je exactement le genre de chose que vous faites:

http://myserver.com/desktop/{dataset}/shell 
http://myserver.com/shopclient/{dataset}/login 
http://myserver.com/mobile/{dataset}/home 
1

Je dirais que si vous êtes en mesure de rouler toutes les données de votre voulant pousser sur le fil et nommez-le quelque chose qui fait sens, qui pourrait être mieux que ce que vous actuellement avoir.

Tout ce que vous finissez par appeler cette structure, je vais l'appeler « foo », l'EEG pour example.com/rest/foo retournerait que

Je suis d'accord qu'il est important de limiter la chattiness de votre application puisque vous possédez à la fois l'application et le service et probablement personne d'autre ne consommera votre service.

0

L'iPhone est comme un client spécial qui a besoin de la sortie formatée d'une manière spéciale (comme AJAX a parfois besoin de JSON de HTML).

Je vous recommande de garder l'URL aussi courte que possible:

example.com/rest/HomeScreen 

Maintenant, vous avez ne déterminent dans votre contrôleur format est demandé (html, JSON, iphone). Vous pouvez le faire en déterminer l'agent utilisateur ou en ajoutant une extension comme:

example.com/rest/HomeScreen.iphone 
example.com/rest/HomeScreen.html 
example.com/rest/HomeScreen.xml 

etc.

0

Je ne pas concevoir une ressource HomeScreen (il se sent très frontal spécifique). Que montre HomeScreen? Je préfère exposer le modèle qui est affiché sur HomeScreen comme le modèle HomeScreen lui-même.

Nous avons une application iphone utilisant l'API REST qui appelle plusieurs ressources (plusieurs appels). L'application est toujours très rapide, car des «boosters de performance» sont utilisés (mise en cache, contrôle de la taille de la charge utile, compression).

En ce qui concerne la négociation de contenu, je pense qu'un format interopérable pour iphone est suffisant (json ou xml). L'appareil mobile peut alors rendre ce modèle comme il aime.