2010-12-01 12 views
5

He escrito un servidor REST en Delphi XE (utilizando el asistente) y quiero cambiar las URLs un poco, así que en vez de tener http://192.168.1.84:8080/datasnap/rest/TServerMethods1/GetListings consigo algo que se parece más a http://192.168.1.84:8080/GetListingsURL Modificación en un servidor Resto en Delphi

¿Hay alguna manera fácil de hacerlo?

+0

esto generalmente se hace en la configuración del servidor web, en Apache usando entradas de redirección de URL en el archivo .htaccess – mjn

+0

sí, también disponible en IIS (al menos 7 quizás 6) si instala el módulo URLRewrite proporcionado por MS. –

+1

@mjustin & @Marjan: Es un servidor independiente, por lo que no se ejecuta con apache o IIS. Esta pregunta se limita a las personas que conocen algunas de las capacidades web de Delphi. – Alister

Respuesta

3

La convención de nomenclatura es (Delphi XE3):

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

Puede cambiar fácilmente la parte "datasnap" y "rest" de la URL en las propiedades del componente TDSHTTPWebDispatcher. Puede cambiar el nombre de la clase y el nombre del método de la URL simplemente cambiando el nombre de su clase y método. Sin embargo, usted todavía tiene que tener 4 componentes a la URL, así que por ejemplo podría ser:

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

Ver aquí:

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

+0

Puede eliminar la parte DataSnap de las propiedades si utiliza TDSHTTPService (XE5 +) –

3

Se puede poner IIS o Apache en el medio para lograr esto y, de hecho, volver a escribir la URL para señalar su servicio de la manera que desee.

Eso proporciona algunas ventajas más de todos modos (seguridad y escalabilidad sobre todo). Por ejemplo, puede crear una configuración a prueba de fallas con servidores dobles, o puede crear varias máquinas con su servicio, y hacer que su servidor web haga el balanceo de carga, por ejemplo.

Obtendrás capacidades de registro adicionales, y si deseas servir fácilmente otro contenido web, es fácil tener un servidor web completamente desarrollado de todos modos.

+2

+1 tiene tantas ventajas que no puedo imaginar ningún servidor de producción que no lo use, por ejemplo, soporte para HTTPS/SSL sin tocar el lado Delphi – mjn

Cuestiones relacionadas