2010-12-13 97 views
12

Sans réinventer la roue, qu'est-ce que je peux utiliser pour gérer des sessions utilisateur dans une application web et être capable de répondre avec JSON à des requêtes ajax?Cadre Delphi côté serveur pour gérer les sessions et répondre avec JSON aux requêtes ajax?

Y a-t-il un cadre (fait par exemple avec des composants Indy ou quelque chose comme ça)?

Note pour bounty:

en pratique, il me suffit d'avoir une réponse avec un bon exemple d'une application serveur qui sert JSON. En quelque sorte un exemple Delphi de l'exemple php mentionné HERE. (sans la partie DB, je veux voir les bases de ce que cela signifie d'envoyer JSON.J'ai des connaissances de base de TIdHTTPServer.)

+0

Une demande est une demande, ne me dérange pas si elle est ajax ou non sur le côté client. Vous pouvez mettre à jour votre question pour demander simplement la gestion de session. – jachguate

+1

@jachguate: La gestion de session fait juste partie de l'implémentation de la requête. Vous devrez analyser la requête, puis extraire les données, puis créer la réponse JSON. Et AJAX introduit de nouvelles spécifications sur le format JSON. –

+0

@ A.Bouchez: Pouvez-vous me dire ce qui est différent dans le format json lorsque vous le servez sur une requête ajax à partir de ce que vous servez si la requête n'est pas ajax? – jachguate

Répondre

5

Peut-être que cela peut vous aider:

REST serveurs de Delphi XE Utilisation de DataSnap Livre blanc

savoir comment construire des serveurs REST en utilisant les fonctionnalités disponibles dans Delphi XE, comment les étendre avec le code de soutien Delphi supplémentaire et comment pour tirer parti de la bibliothèque jQuery.

Marco Cantù

http://app.en25.com/e/er.aspx?s=608&lid=4414&elq=d428643420d2494581299418d9753feb

+0

Merci, c'est très instructif, je n'ai pas le temps d'installer Delphi XE Enterprise (j'ai le professionnel) et de lancer les exemples à la fin de la prime. Je deviens "out of the box" avec datasnap xe par rapport à tout créer à partir de zéro avec webbroker? Je devine en lisant les titres de whitepape: gestion des sessions, authentification puis? (Je veux dire quels sont les avantages de datasnap xe dans mon cas particulier) – LaBracca

+0

Fondamentalement dans Datasnap si vous avez une fonction retournant un objet Datasnap le servira automatiquement comme json. Reportez-vous à OBJETS ET MARSHALING à la page 29 du fichier .pdf – Toto

5

Vous pouvez jeter un oeil à notre Synopse SQLite3 Framework, qui vient d'être mis à jour vers la version 1.11.

Il serves the data in pure JSON, prêt à être utilisé dans n'importe quelle application AJAX.

Vous pouvez également créer facilement des services, et plus précisément Client-Server JSON RESTful Services. Dans ce cas, vous ne pouvez même pas utiliser SQLite3 pour votre stockage de données.

Ce framework est purement Open Source, compile/run/est testé pour Delphi 6 jusqu'à XE, est compatible Unicode pour toutes les versions de Delphi (il utilise UTF-8 en interne). En utilisant ce framework, vous pouvez facilement créer Delphi clients, using JSON data from the same server.

Il n'y a pas encore de gestion de session utilisateur interne. Parce qu'il y a plusieurs façons de les implémenter, et comme notre framework est RESTful, il est donc sans état: aucune session n'est nécessaire.

Si vous en avez besoin, je pourrais facilement ajouter des sessions HTTP en utilisant des cookies. Qu'en est-il de l'authentification de l'utilisateur que vous attendez?

+0

Merci pour la réponse. Ce que je cherche c'est un framework Delphi pour créer un backend pour une application web. Je prévois d'utiliser Sencha Touch pour l'interface utilisateur (et c'est pourquoi je ne veux pas utiliser des choses comme Intraweb). J'ai beaucoup de code que je peux réutiliser, c'est pourquoi je cherche un backend Delphi (et d'ailleurs parce que c'est la seule langue que je maîtrise). L'autentication dont j'ai besoin est l'utilisateur/mot de passe classique, ce n'est pas une véritable authentification de DB, même si sous le capot j'utilise les utilisateurs DB pour l'autenthication, mais toutes les connexions sont faites par un seul utilisateur. Donc, la mise en commun est possible. – LaBracca

+0

Pensez-vous que ce framework me permettra de générer une application web qui utilise Sencha Touch (ou tout framework javascript) sans trop souffrir? (Autrement dit: existe-t-il déjà une application de travail à vérifier?) Quelles sont les alternatives que vous suggérez pour gérer l'autenthication? – LaBracca

+0

Sencha Touch appartient à la même famille que ExtJS. Donc, pour éviter beaucoup de "souffrance", je vous recommande de consulter ExtPascal ou Raudus, qui sont dédiés à ExtJS: http://stackoverflow.com/questions/3022378/raudus-vs-extpascal-delphi-web-developement-alternatives-that-use-extjs Mais attention à la licence ExtJS/SenchaTouch, –

5

DelphiMVCFramework le fait

Quelques caractéristiques notables:

  • RESTful (RMM niveau 3) conformes
  • Peut être utilisé en charge environnement équilibré à l'aide Redis (http://Redis.io) [dev]
  • Fantaisie URL avec mappages de paramètres
  • Rendu spécialisé pour générer du texte, html, JSON
  • puissant mappeur à la carte JSON aux objets et aux ensembles de données aux objets
  • peut être conditionné comme autonome serveur, le module apache (XE6, XE7, XE8) et ISAPI dll
  • Travaux RESTClient intégrés avec XE3, XE4, XE5, XE6 , XE7 et XE8 unité complètement testé
  • il y a un échantillon pour chaque functionlities
  • il y a un ensemble complet de formations à ce sujet, mais les échantillons sont inclus dans le projet support expérimental pour IOCP [dev]
  • Page côté serveur générée s en utilisant elua (intégré Lua) [removed bientôt]
  • Des formations spécifiques sont disponibles (me demander une date et un lieu)
  • Messaging extension à l'aide STOMP (beta)
  • communautaire entraîné (groupe Facebook https://www.facebook.com/groups/delphimvcframework)
  • simple et documenté
  • Il y a des livres qui parlent le cadre

site web du projet: https://github.com/danieleteti/delphimvcframework

N.B. Je suis le développeur principal

4

Je suggère Delphi on Rails, c'est un framework web open source REST/MVC/StateLess.

http://code.google.com/p/delphionrails/

Il utilise:

  • SuperObject analyseur JSON
  • pilote UIB/Firebird JSON
  • Caire pour SVG, PDF, PNG rendu
  • LUA pour les scripts/modèle ..

Il est capable de sérialiser automatiquement les structures de données Delphi vers JSON en utilisant le nouveau RTTI introduit dans Delphi 2010 & XE.

0

Je recommande super boîte à outils de l'objet.

http://www.progdigy.com

Exemple de code:

procedure Share(ARequestInfo: TIdHTTPRequestInfo) 
var 
ReturnObject: ISuperObject; 
begin 
    ReturnObject := SO(); 
    ReturnObject.B['success'] := false; 

    AResponseInfo.ContentType := 'application/json'; 
    AResponseInfo.ContentText := ReturnObject.AsJSon(); 
end;