2009-04-23 14 views
2

Ce problème concerne le cadre Restlet et JavaUtilisation des options HTTP pour récupérer des informations sur les ressources REST

Lorsqu'un client veut découvrir les ressources disponibles sur un serveur - ils doivent envoyer une requête HTTP avec des options comme le type de demande . C'est bien je suppose que pour les clients lisibles par des humains - c'est-à-dire dans le code plutôt que dans un navigateur. Le problème que je vois ici est - les navigateurs (lisible par l'homme) utilisant GET, ne pourront pas découvrir rapidement les ressources disponibles et trouver une documentation supplémentaire d'aide etc. - parce qu'ils n'utilisent pas OPTIONS comme type de demande . Existe-t-il un moyen pour qu'un navigateur envoie une demande OPTIONS/GET afin que le serveur puisse renvoyer le format XML au client (comme c'est le cas dans Restlet - la réponse du serveur consiste à renvoyer toutes les informations au format XML), et l'afficher dans le navigateur? Ou ai-je eu ma pensée tout faux - c'est-à-dire le point de OPTIONS est-ce qui est destiné à être utilisé dans le code d'un client et non destiné à être lu via un navigateur.

Répondre

1

Utilisez le TunnelService (qui est déjà activé par défaut) et ajoutez simplement le paramètre de requête method=OPTIONS à votre URL.

(Le Restlet FAQ Q19 est une question similaire.)

+0

Avez-vous une idée de la façon dont vous implémentez cela - pas grand-chose à faire à partir des docs de l'API. À votre santé. – Vidar

+0

Il est activé par défaut, créé et configuré avec la configuration par défaut dans le constructeur Application (Context). –

+0

ok - J'ai eu du code qui interférait avec TunnelService - donc enlevé cela et juste du navigateur - entré method = OPTIONS comme vous l'avez dit et cela fonctionne. – Vidar

1

Je pense OPTIONS est pas conçu pour être 'utilisateur visible'.

Comment enverriez-vous une requête OPTIONS du navigateur? (Notez que l'élément de formulaire seulement allows GET et POST).

Vous pouvez l'envoyer en utilisant XmlHttpRequest, puis récupérer XML dans votre rappel JavaScript et le rendre de manière appropriée. Mais je ne suis pas convaincu que c'est quelque chose que votre utilisateur devrait vraiment savoir!