« Ressource (sdata) » : différence entre les versions

De Wiki1000
Ligne 270 : Ligne 270 :
'''Modification de rôle liste composition :'''
'''Modification de rôle liste composition :'''


Par défaut les rôles composition sont remplacés, dans cet exemple la liste des site est mise à jour en remplaçant les sites existants par ceux de la requête.
Par défaut les rôles composition sont gérés en remplacement, pour contrôler le mode de gestion des rôles utilisez un élément de contrôle "$" pour le rôle 


<pre>
<pre>
Ligne 276 : Ligne 276 :
Request :
Request :
{
{
  "$":{
    "sitesList:["create"]
  },
   "sitesList":[
   "sitesList":[
       {
       {

Version du 22 décembre 2020 à 13:45

Dans l'interface SData les ressources sont les objets de l'application.

Requête sur les ressources (GET)

GET http://localhost:8080/sdata/gentiers/ttiers('9D33A23CFA6A005500F6000000285DAE')
Response: 200 OK
{
   "$baseUrl":"http://localhost:8080/sdata/l1000/gentiers/-/",
   "$title":"TTiers - -",
   "$updated":"2020-12-22T08:10:09.740Z",
   "$resources":[
      {
         "$url":"TTiers('9D33A23CFA6A005500F6000000285DAE')",
         "$title":"ABI Jardin",
         "$updated":"2010-03-23T15:37:46.000Z",
         "$etag":"9D33A23CFA6A005500F6000000285DAE-000002C60000421C",
         "$key":"9D33A23CFA6A005500F6000000285DAE",
         "$baseUrl":"http://localhost:8080/sdata/l1000/GenTiers/-/",
         "stamp":"000002C60000421C",
         .... Attribute list ...
      }
   ]
}

Paramètres de la requête

Paramètre valeur Usage
select liste d'attributs séparés par des virgules Liste des attributs à retourner
where Expression objet Filtre de la requête
orderBy Attribut de tri Ordre de tri de la requête
count Taille de page Pagination : Taille de page
startIndex Index de page Pagination par page : Numéro de page (0 première)
startKey Valeur de clé ou de tri Pagination par clé : Clé de position
keyDirection lt,le,gt,ge Pagination par clé : direction par rapport à startKey

Les valeurs passées en paramètre doivent être encodées en HTML

Exemple :

where=code eq 'ABI 007'

doit être encodée en :

where=code%20eq%20%27ABI%20007%27

Select

GET http://localhost:8080/sdata/gentiers/ttiers?select=code,caption

Filtre

Opérateurs:

opérateur équivalence exemple encoded
eq = where=code eq 'ABI 007' where=code%20eq%20%27ABI%20007%27
neq <>
lt <
le <=
gt >
ge >=
like like where=code like 'ABI %' where=code%20like%20%27ABI %25%27
in in

Valeurs des paramètres:

Les valeurs des paramètres sont passées en littérale

Type de donnée exemple
Chaîne code eq 'xxx'
boolean flag eq true
numérique value eq 1
flottant value eq 1.0
date $updated > '2020-12-21T00:00:00'

Ordre de tri

Tri ascendant :

orderby=code

Tri descendant :

orderby=code%20desc
GET http://localhost:8080/sdata/gentiers/ttiers?orderBy=code%20desc

Pagination par page

Utiliser orderBy, count et startIndex

GET http://localhost:8080/sdata/gentiers/ttiers?type=application/json&select=code&orderby=code&count=10&startIndex=0
GET http://localhost:8080/sdata/gentiers/ttiers?type=application/json&select=code&orderby=code&count=10&startIndex=1
GET http://localhost:8080/sdata/gentiers/ttiers?type=application/json&select=code&orderby=code&count=10&startIndex=2
  ...

Pagination par clé

Utiliser orderBy, startKey et keyDirection

GET http://localhost:8080/sdata/gentiers/ttiers?type=application/json&select=code&orderby=code&count=10&startKey=1B28EFFFF1C3000200F6000000230893&keyDirection=lt

Création de ressource (POST)

POST http://localhost:8080/sdata/gentiers/ttiers
Request:
{
   "code":"SYFRE1",
   "caption":"syfre 1",
   "sitesList":[
      {
         "code":"SITE1",
         "caption":"site1 de syfre1",
         "adresse":{
            "nomRueVoie":"rue de la pompe",
            "ville":"Clichy",
            "codePostal":"92100",
            "pays":{
               "$key":"9D33A23CFA6A005500150000001700FD"
            }
         }
      }
   ]
}
Response: 200 OK
{
    "$resources": [
        {
            "$key": "9D33A23CFA6A005500F6000001E20022",
            "$url": "http://localhost:8080/sdata/l1000/gentiers/-/TTiers('9D33A23CFA6A005500F6000001E20022')",
            ... attribute list ...
        } 
     ]
}


Identification des références

Par clé:

{
  "pays":{
    "$key":"9D33A23CFA6A005500150000001700FD"
  }
}

Par uri:

{
  "pays":{
    "$url":TPays("9D33A23CFA6A005500150000001700FD")
  }
}

Par expression:

{
  "pays":{
    "$where":"codeISO = 'FRA'",
    "$orderby":"codeISO"
  }
}

Modification de ressource (PUT)

PUT http://localhost:8080/sdata/gentiers/ttiers('9D33A23CFA6A005500F6000001E20018')
Request:
{
"codeSIRET":"12345678"
}
Response: 200 OK
[
{ 
.... resource modified ...
}
]

Modification de rôle liste composition :

Par défaut les rôles composition sont gérés en remplacement, pour contrôler le mode de gestion des rôles utilisez un élément de contrôle "$" pour le rôle

PUT http://localhost:8080/sdata/gentiers/ttiers('9D33A23CFA6A005500F6000001E20018')
Request :
{
   "$":{
     "sitesList:["create"]
   },
   "sitesList":[
      {
         "code":"SITE3",
         "caption":"site3 de syfre1",
         "adresse":{
            "nomRueVoie":"rue Mogador",
            "ville":"Paris",
            "codePostal":"75008",
            "pays":{
               "$where":"codeISO = 'FRA'",
               "$orderby":"codeISO"
            }
         }
      }
   ]
}
Response: 200 OK
{
    "$resources": [
        {
            "$key": "9D33A23CFA6A005500F6000001E30019",
            "$url": "/sdata/gentiers/ttiers('9D33A23CFA6A005500F6000001E30019')",
            "stamp": "000001710000002A",
            ....
            "sitesList": [
                {
                    "$key": "9D33A23CFA6A005500F8000001E30028",
                    "Adresse": {
                        "$key": "9D33A23CFA6A005500FB000001E3002A",
                        "$url": "TAdresse('9D33A23CFA6A005500FB000001E3002A')",
                        "nomRueVoie": "rue Mogador",
                        "NPAI": false,
                        "Pays": {
                            "$key": "9D33A23CFA6A005500150000001700FD",
                            "$url": "TPays('9D33A23CFA6A005500150000001700FD')"
                        },
                        "ville": "PARIS"
                    },
                    "code":"SITE3",
                    ... 
            }
           ]
    ]
}

Suppression de ressource (DELETE)

DELETE http://localhost:8080/sdata/gentiers/ttiers('9D33A23CFA6A005500F6000001E20018')
Response: 200 OK