2015-01-29 24 views
6

I servizi RESTful creati con Delphi DataSnap forniscono un mapping predefinito dei prefissi per i metodi REST esposti dal server DataSnap in base al tipo di metodo HTTP. Questi sono i seguenti: ". Il modello di mappatura può essere ignorato L'utente può ignorare la mappatura per ogni tipo in base al nome della classe e dei parametri nome del metodo"Come mappare i prefissi dei metodi HTTP personalizzati su un server DESThi DataSnap REST

HTTP Method type Prefix  Example 
GET    none   MyValue 
POST    Update  UpdateMyValue 
PUT    Accept  AcceptMyValue 
DELETE    Cancel  CancelMyValue 

La documentazione Tuttavia, non ho assolutamente trovato alcuna documentazione su come farlo. Voglio cambiare il prefisso del mio PUT da Accept a qualcos'altro. Come lo faccio?

Devo notare che un altro post qui su StackOverflow (REST Datasnap override URI mapping) tenta di rispondere a questa domanda sottolineando che TDSHTTervizio ha metodi per eseguire questa mappatura. Lo stesso post fa riferimento anche al white paper di DataSnap di Marco Cantù, che presumibilmente descrive anche come farlo. Questo white paper dice "È possibile personalizzare questi mapping gestendo i quattro gestori di eventi corrispondenti del componente DSHTTPWebDispatcher."

In RAD Studio XE, sia i componenti TDSHTTPService e TDSHTTPWebDispather aveva quattro eventi specifici, corrispondenti ai quattro metodi HTTP sopra elencati, e che sono stati progettati per mappare il prefisso. Questi metodi non esistono in XE2 e versioni successive.

+0

Sto cominciando a sospettare che quello che voglio fare non è possibile nel quadro DataSnap senza una sorta di hack. Non è una cosa terribile, solo interessante che XE abbia supportato questo approccio, e XE2 e versioni successive no. –

risposta

0

Mentre era possibile mappare DataSnap POST, PUT e DELETE chiamate di metodo HTTP a prefissi alternativi in ​​XE, non è possibile farlo in Delphi XE2 tramite Delphi XE8. In quelle versioni devi attaccare rispettivamente con Update, Accept e Cancel. E, ad essere onesti, questo non è un vero problema.

Vale la pena notare che è possibile mappare le varie chiamate di metodo HTTP usando di Embarcadero Enterprise Mobility Services (EMS). Ho scritto un white paper e registrato un video su EMS per Embarcadero. Per accedere al white paper e al video, utilizzare il seguente URL.

http://www.embarcadero.com/rad-in-action/mobilizing-your-business-with-cary-jensen