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)
    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/RADStudio/Rio/en/Tutorial:_Using_a_REST_DataSnap_Server_with_an_Application_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
    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)
    Je vous remercie, je vais regarder ça.

  4. #4
    Membre émérite
    Voici un peu de doc.
    Si besoin je t'envoie les sources

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

    Merci

  6. #6
    Membre émérite
    Ci joint le zip souhaité. Dispo pour répondre à tes questions

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

  8. #8
    Membre expérimenté
    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)
    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
    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 expérimenté
    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)
    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.

  13. #13
    Invité
    Invité(e)
    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.

  14. #14
    Membre expérimenté
    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)
    Ok merci beaucoup, je vais prendre en compte vos remarques.

###raw>template_hook.ano_emploi###