2010-12-01 88 views
5

J'ai écrit un serveur REST dans Delphi XE (à l'aide de l'assistant) et je souhaite modifier les URL un peu de sorte qu'au lieu d'avoir http://192.168.1.84:8080/datasnap/rest/TServerMethods1/GetListings je reçois quelque chose qui ressemble plus http://192.168.1.84:8080/GetListingsModification des URL sur un serveur Reste à Delphes

Y a-t-il un moyen facile de le faire?

+0

cela se fait généralement dans la configuration du serveur Web, dans Apache en utilisant les URL redirection dans le fichier .htaccess – mjn

+0

oui, également disponible sur IIS (au moins 7 peut-être 6) si vous installez le module URLRewrite fourni par MS. –

+1

@mjustin & @Marjan: C'est un serveur autonome donc il ne fonctionne pas sous Apache ou IIS. Cette question est assez limitée aux personnes qui connaissent certaines des fonctionnalités Web de Delphi. – Alister

Répondre

3

La convention de nommage est (Delphi XE3):

http://my.site.com/datasnap/rest/URIClassName/URIMethodName [/ inputParameter]

Vous pouvez facilement modifier la partie "datasnap" et "repos" de l'URL dans les propriétés du composant TDSHTTPWebDispatcher. Vous pouvez changer le nom de classe et le nom de méthode de l'URL en changeant simplement le nom de votre classe et méthode. Cependant, vous devez toujours avoir 4 composants à l'URL, de sorte que par exemple, il pourrait être:

http://my.site.com/api/v1/People/Listing

Voir ici:

http://docwiki.embarcadero.com/RADStudio/XE3/en/REST#Customizing_the_URL_for_REST_requests

+0

Vous pouvez supprimer la partie DataSnap des propriétés si vous utilisez TDSHTTPService (XE5 +) –

3

Vous pouvez mettre IIS ou Apache entre deux accomplissez ceci, et en effet réécrivez l'URL pour pointer votre service comme vous aimez.

Cela offre quand même quelques avantages supplémentaires (la sécurité et l'évolutivité principalement). Par exemple, vous pouvez créer une installation à sécurité intégrée avec des serveurs doubles, ou vous pouvez créer plusieurs machines avec votre service et demander à votre serveur Web d'équilibrer la charge par exemple.

Vous disposerez de capacités de journalisation supplémentaires, et si vous souhaitez facilement diffuser d'autres contenus Web, il est facile d'avoir un serveur Web complet.

+2

+1 il a tellement d'avantages que je ne peux pas imaginer aucun serveur de production ne l'utilise, par exemple le support HTTPS/SSL sans toucher le côté Delphi – mjn