IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

API Rest Documentations


Sujet :

Delphi

  1. #1
    Invité
    Invité(e)
    Par défaut API Rest Documentations
    Bonjour,

    Je souhaite mettre en place une API Rest avec Delphi 10.3. Je suis plutôt novice en API et j'ai des difficultés à trouver de la documentation et des tutos récents. Si je comprends bien, le type de projet adapté serait "DataSnap REST Application".

    Pour l'instant je n'ai trouvé que le tutoriel d'Embarcadero http://docwiki.embarcadero.com/RADSt...on_and_FireDAC (mais c'est plutôt la base et la mise en place du projet)

    Si vous avez des pistes, conseils ou doc je suis preneur.

    Merci par avance.

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 449
    Points : 24 856
    Points
    24 856
    Par défaut
    un Serveur REST, c'est qu'un serveur HTTP qui traite des requêtes JSON
    Vous pouvez aussi partir d'un TIdHTTPServer et traiter le JSON reçu dans OnCommandGet (Perso, je l'ai fait comme ça)

    il faudrait plutôt commencer par un tutoriel plus simple : Using a REST DataSnap Server with an Application avec la vidéo qui va avec : Using jQuery with DataSnap REST Applications
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Invité
    Invité(e)
    Par défaut
    Je vous remercie, je vais regarder ça.

  4. #4
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 494
    Points : 2 759
    Points
    2 759
    Billets dans le blog
    10
    Par défaut
    Voici un peu de doc.
    Si besoin je t'envoie les sources
    Images attachées Images attachées

  5. #5
    Invité
    Invité(e)
    Par défaut
    Génial ! Avec grand plaisir, je suis preneur.

    Merci

  6. #6
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 494
    Points : 2 759
    Points
    2 759
    Billets dans le blog
    10
    Par défaut
    Ci joint le zip souhaité. Dispo pour répondre à tes questions
    Fichiers attachés Fichiers attachés

  7. #7
    Invité
    Invité(e)
    Par défaut
    Merci beaucoup, je n’hésiterais pas !

  8. #8
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    ou sinon il y a aussi WebBrocker pour servir de base à un projet de serveur d'API ou autre chose

  9. #9
    Invité
    Invité(e)
    Par défaut
    Quelles vont être les différences au niveau du squelette du projet (entre DataSnap et WebBrocker) ?
    Vous recommanderiez plutôt WebBrocker dans l'optique de créer un serveur d'API ? Si je comprends bien, il n'y a pas vraiment une unique solution.

  10. #10
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 494
    Points : 2 759
    Points
    2 759
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par floki44 Voir le message
    Quelles vont être les différences au niveau du squelette du projet (entre DataSnap et WebBrocker) ?
    Vous recommanderiez plutôt WebBrocker dans l'optique de créer un serveur d'API ? Si je comprends bien, il n'y a pas vraiment une unique solution.
    La base est la même. Quand tu connais un modèle les principes sont similaires

  11. #11
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    Citation Envoyé par floki44 Voir le message
    Si je comprends bien, il n'y a pas vraiment une unique solution.
    Effectivement. Delphi est riche et le Pascal permet de faire tout ce qu'on veut, donc la vraie difficulté est de savoir de quel niveau on veut partir selon ce qu'on désire obtenir.

    WebBrocker sert de base aux modules serveur http. Il est assez léger. Il suffit d'y déclarer tes endpoints (URL) d'API et tu as une procédure pour chaque pour faire le traitement désiré.

    Avec DataSnap en mode REST, c'est le même principe, mais ça ajoute une surcouche pour des appels RPC et du partage de données automatisable avec le driver DataSnap pour dbExpress et FireDAC.

    A toi donc de voir ce que tu veux faire et surtout comment tu veux consommer tes données (avec un programme Delphi ou avec n'importe quel type de client, y compris des sites web en JS par exemple).

    WebBrocker est disponible dans chaque édition de Delphi. DataSnap dans les Entreprise / Architect.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Merci pour toutes ces informations.

    L'idée est de prévoir une solution capable d'être utilisée avec n'importe quel type de client si possible.
    Comme j'utilise les composants ADO et pas FireDAC pour effectuer les interroger la BDD, un projet WebBrocker est peut-être plus adapté.

    En terme d'architecture du projet, y a-t-il des recommandations ? Ex : une unité pour les routes (type controller qui s'occupe de récupérer les requêtes HTTP) et transmettrait à une autre unité la responsabilité des échanges avec la BDD.
    Dernière modification par Invité ; 16/07/2020 à 09h54.

  13. #13
    Invité
    Invité(e)
    Par défaut
    Merci pour vos conseils, j'ai réussi à valider les actions CRUD en connexion avec une BDD (projet WebBrocker).

    Quels sont vos préconisations pour sécuriser au mieux ce type d'application ?

    Merci par avance.
    Dernière modification par Invité ; 16/07/2020 à 14h46.

  14. #14
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    les mêmes que tout type d'application, web ou pas : vérifier les données en entrée, mettre des mots de passes et identifiants de session lorsque nécessaire, s'assurer que la base de données n'est pas accessible "de l'extérieur" de la machine sur laquelle elle tourne

  15. #15
    Invité
    Invité(e)
    Par défaut
    Ok merci beaucoup, je vais prendre en compte vos remarques.
    Dernière modification par Invité ; 20/07/2020 à 15h56.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. API REST documentation et appel
    Par soazig dans le forum Services Web
    Réponses: 2
    Dernier message: 23/04/2019, 10h56
  2. [XML] API REST : comment ca marche ?
    Par chuckichucki dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 18/01/2011, 13h33
  3. [Authentification] API REstful PHP
    Par yoshï dans le forum REST
    Réponses: 1
    Dernier message: 22/07/2008, 09h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo