{"id":1450,"date":"2023-09-06T17:20:40","date_gmt":"2023-09-06T15:20:40","guid":{"rendered":"https:\/\/lightrest.codeline.fr\/?page_id=1450"},"modified":"2023-09-06T18:08:48","modified_gmt":"2023-09-06T16:08:48","slug":"data-service","status":"publish","type":"page","link":"https:\/\/lightrest.codeline.fr\/index.php\/data-service\/","title":{"rendered":"DataService"},"content":{"rendered":"\n<p>Le composant LightREST propose, en plus de la possibilit\u00e9 de d\u00e9ployer des Web Services en REST, un syst\u00e8me de plus haut niveau appel\u00e9 <strong><font color=\"#217070\">DataService<\/font><\/strong>.<\/p>\n\n\n\n<p>Il arrive fr\u00e9quemment qu&rsquo;on ait besoin de publier plusieurs tables d&rsquo;une base de donn\u00e9es sur des routes diff\u00e9rentes. Il peut alors devenir p\u00e9nible de d\u00e9clarer chaque route et de d\u00e9velopper des proc\u00e9dures REST tr\u00e8s semblables \u00e0 la diff\u00e9rence pr\u00e8s qu&rsquo;elles ne distribuent pas les donn\u00e9es de la m\u00eame table de la base de donn\u00e9es.<\/p>\n\n\n\n<p><strong><font color=\"#217070\">DataService<\/font><\/strong> (qui est une \u00ab\u00a0surcouche\u00a0\u00bb de LightREST) permet d&rsquo;activer, sans aucun d\u00e9veloppement de proc\u00e9dure REST, des routes \u00ab\u00a0branch\u00e9es\u00a0\u00bb sur des tables ou des requ\u00eates et de les diffuser \u00e0 travers un Web Service REST, au format JSON. Bien \u00e9videmment <em>un contr\u00f4le complet sur le donn\u00e9es diffus\u00e9es<\/em>, les destinataires, les m\u00e9thodes REST autoris\u00e9es est inclus. <strong><font color=\"#217070\">DataService<\/font><\/strong> utilisant LightREST, toutes les caract\u00e9ristiques et avantages de celui-ci sont conserv\u00e9s.<\/p>\n\n\n\n<p>Comme indiqu\u00e9 dans la documentation LightREST, les bonnes pratiques de s\u00e9curit\u00e9 interdisent la diffusion en clair d&rsquo;identifiants de la base de donn\u00e9e \u00e0 des tiers ext\u00e9rieurs. <strong><font color=\"#217070\">DataService<\/font><\/strong> propose donc un<em> chiffrement\/d\u00e9chiffrement automatique des IDs automatiques<\/em> num\u00e9riques, ce qui permet de s\u00e9curiser les donn\u00e9es sans aucune intervention du d\u00e9veloppeur. Les IDs de type entier sont remplac\u00e9s par des UUIDs lorsqu&rsquo;on on envoie des donn\u00e9es par un Web Service. Si un UUID est re\u00e7u comme param\u00e8tre d&rsquo;une requ\u00eate, DataService le d\u00e9chiffre automatiquement et permet d&rsquo;acc\u00e9der \u00e0 l&rsquo;enregistrement concern\u00e9.<\/p>\n\n\n\n<p>Pour garder un contr\u00f4le complet sur l&rsquo;ex\u00e9cution des processus <strong><font color=\"#217070\">DataService<\/font><\/strong> , le d\u00e9veloppeur peut d\u00e9clarer des proc\u00e9dures qui s&rsquo;ex\u00e9cuteront automatiquement avant et apr\u00e8s chaque appel. Ces proc\u00e9dures pourront, par exemple :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Contr\u00f4ler le droit d&rsquo;acc\u00e8s \u00e0 une donn\u00e9e<\/li>\n\n\n\n<li>V\u00e9rifier la coh\u00e9rence d&rsquo;un enregistrement avant insertion ou modification d&rsquo;un enregistrement<\/li>\n\n\n\n<li>Refuser la mise \u00e0 jour d&rsquo;une donn\u00e9e<\/li>\n\n\n\n<li>Forcer des valeurs par d\u00e9faut <\/li>\n\n\n\n<li>Compl\u00e9ter, effacer, modifier des donn\u00e9es avant envoi du r\u00e9sultat<\/li>\n\n\n\n<li>&#8230;<\/li>\n<\/ul>\n\n\n\n<p>Avec <strong><font color=\"#217070\">DataService<\/font><\/strong>, le d\u00e9veloppeur peut publier sans effort des donn\u00e9es provenant de diff\u00e9rentes sources :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Table de base de donn\u00e9es (ou fichier sous HyperfileSQL)<\/li>\n\n\n\n<li>Requ\u00eate WinDev (.wdr)<\/li>\n\n\n\n<li>Requ\u00eate SQL format texte<\/li>\n<\/ul>\n\n\n\n<p><strong><font color=\"#217070\">DataService<\/font><\/strong> g\u00e8re optionnellement la <em>pagination <\/em>dans distribution des donn\u00e9es, afin que l&rsquo;appelant puisse, par exemple, affiche des donn\u00e9es volumineuses de fa\u00e7on optimis\u00e9e.<\/p>\n\n\n\n<p><strong><font color=\"#217070\">DataService<\/font><\/strong> sait \u00e9galement distribuer automatiquement en REST des <em>m\u00e9mos images<\/em> stock\u00e9s dans une base HyperfileSQL, avec redimensionnement possible \u00e0 la vol\u00e9e.<br><br>Pour chaque type de source de donn\u00e9es, on dispose d&rsquo;un objet sp\u00e9cifique :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>dsTable <\/strong>: table de la base de donn\u00e9es<\/li>\n\n\n\n<li><strong>dsRequeteWD <\/strong>: requ\u00eate WinDev (.wdr)<\/li>\n\n\n\n<li><strong>dsRequeteTXT <\/strong>: requ\u00eate Texte<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Le composant LightREST propose, en plus de la possibilit\u00e9 de d\u00e9ployer des Web Services en REST, un syst\u00e8me de plus haut niveau appel\u00e9 DataService. Il arrive fr\u00e9quemment qu&rsquo;on ait besoin de publier plusieurs tables d&rsquo;une base de donn\u00e9es sur des routes diff\u00e9rentes. Il peut alors devenir p\u00e9nible de d\u00e9clarer chaque route et de d\u00e9velopper des [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1450","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/lightrest.codeline.fr\/index.php\/wp-json\/wp\/v2\/pages\/1450","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lightrest.codeline.fr\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lightrest.codeline.fr\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lightrest.codeline.fr\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/lightrest.codeline.fr\/index.php\/wp-json\/wp\/v2\/comments?post=1450"}],"version-history":[{"count":18,"href":"https:\/\/lightrest.codeline.fr\/index.php\/wp-json\/wp\/v2\/pages\/1450\/revisions"}],"predecessor-version":[{"id":1494,"href":"https:\/\/lightrest.codeline.fr\/index.php\/wp-json\/wp\/v2\/pages\/1450\/revisions\/1494"}],"wp:attachment":[{"href":"https:\/\/lightrest.codeline.fr\/index.php\/wp-json\/wp\/v2\/media?parent=1450"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}