Newsgroup: it.comp.lang.delphi
Titolo: XE5 - Primi passi (con relative cadute) con REST

Un saluto a tutti. 
Ieri ho iniziato a smanettare con XE5 creando un server REST e provando ad utilizzarlo da una app firemonkey.
Avrei voluto fare direttamente delle prove da un table android, ma non c'e' stato verso di far "digerire" a win7 il kaz di mediacom di mia figlia.
Va be..
Vi fermo prima che mi inondate di link: ho provato circa 12 cose trovate sul web che ovviamente non hanno funzionato.
Ovviamente sul sito ufficiale dell'azienda di questo problema non si parla...
 
 
Come prima prova, quello che ho realizato in veramente poco poco tempo e' in pratica cio' che i vecchi tempi si faceva con DCOM o CORBA, ovvero, un server che espone dei tdatasetprovider usati poi da un client che usa questi provider appioppandoli a dei tclientdataset. Da li poi usando livebindings ho popolato una griglia. 
Facendo questa cosa mi sono posto alcune domande.
Ho provato a cercare delle risposte ma c'e' troppa frammentazione.
Da qui il mio chiederi lumi a qualcuno pi' esperto...
 
1) Usando DCOM, il wizard chiedeva di certo qualcosa sul modello di threading.
In questo caso a chi spetta la responsabilità di garantire che piu' client connessi non facciano a pugni per usare le stesse istanze lato server?
 
2) Usare un tdatasetprovider di fatto vuol dire che non si e' in una logica disconessa e stateless. Se questa cosa in ambito LAN potrebbe aver senso, in un contesto wan questo tipo di collegamento rischia di essere instabile. 
Inoltre, se REST e' di fatto uno standard, DEVE per forza di cose esistere il modo di creare qualcosa che non sia strettamente legato a tdatasetprovider e midas, giusto? Nel caso, cosa devo cercare?
 
Grazie per ogni risposta.
 
A.
 
 

 Inoltre, se REST e' di fatto uno standard, DEVE per forza di cose esistere il modo di creare qualcosa che non sia strettamente legato a tdatasetprovider e midas, giusto? Nel caso, cosa devo cercare?
 
DataSnap ti consente di "remotizzare" i metodi di un DataModule e renderli invocabili tramite HTTP: questo è il primo step da seguire.
 
Se usi ClientDataSet ed esponi/sfrutti DataSet, stai utilizzando un tecnologia specifica di Delphi, comoda e funzionale ma "non REST".
 
Quando si parla di REST, inoltre, non si fa solo riferimento al semplice uso di HTTP per manipolare delle risorse, ma anche a un insieme di convenzioni che devono essere rispettate nella struttura dell'interfaccia, negli URL che vengono utilizzati e così via.
 
Ci sono diversi libri che ne parlano, ma per una panoramica generale puoi leggere questa guida:
http://www.html.it/guide/restful-web-services-la-guida/
 
 
Ciao,
  Marco.
 
-- 
MARCO BREVEGLIERI
#Home: 
http://www.marco.breveglieri.name
 
#Blog: 
http://www.compilaquindiva.net
 

 leggere questa guida:
 
 
Tnx....
magari ho fatto domande da vero niubbo ma ste cose non le ho mai usate e al solito se cerchi info trovi di tutto ma sempre a pezzettini...
 
A.

 magari ho fatto domande da vero niubbo ma ste cose non le ho mai usate e al solito se cerchi info trovi di tutto ma sempre a pezzettini...
 
Leggi anche questo "white paper" sull'argomento, legato specificatamente a Delphi:
http://www.embarcadero.com/rad-in-action/datasnap-rest
 
 
In alternativa, può essere interessante dare un'occhiata a framework Delphi emergenti, come questo:
https://code.google.com/p/delphimvcframework/
 
DMVCFramework è "RESTful": implementa e rispetta lo standard appieno.


 Ieri ho iniziato a smanettare con XE5 creando un server REST e provando ad utilizzarlo da una app firemonkey.
 
Torno sull'argomento solo per segnalare un articolo che trovo interessante riguardo la "REST Client API" inserita in XE5:
http://blogs.embarcadero.com/jtembarcadero/2013/12/19/no-time-endlesss-possibilities-with-rest-for-vcl-and-fm/
 
 
Io l'ho sfruttata per collegarmi a un database NoSQL (qui si scarica l'esempio: 
http://bit.ly/IoL6OL
), nello specifico CouchDB, che usa un API REST per l'interfacciamento.
 
So che tu stavi provando a realizzare un server, ma magari fare qualche test o leggere documentazione sul client può essere utile per avere un'idea di come il server debba poi rispondere a queste richieste. :)
 
Ciao,
  Marco.
 
-- 
MARCO BREVEGLIERI (Software and Web Developer)
#Home: 
http://bit.ly/marcobreveglieri
 
#Blog: 
http://bit.ly/compilaquindiva
 

 
 
Per far si che ti veda il tablet mediacom ti consiglio di scaricare ed installare pdanet e selezionare other con un tablet in mio possesso che delphi non vedeva e andato ora lo visualizza spero che valga anche per te.

> installare pdanet e selezionare other con un tablet in mio possesso che delphi 
 
Ciao.
Grazie per la dritta.
Appena possibile provo  e naturalmente posto sul ng.
 
A.