Documentatie

Voor de webservice wordt een speciale techniek gebruikt om zo efficiënt mogelijk met de gegevens om te gaan. De techniek wordt expansie genoemd.

Bij het opvragen van de gegevens worden soms deelverzamelingen meegegeven. Omdat deze deelverzamelingen niet in alle gevallen noodzakelijk zijn, gaat de webservice er standaard vanuit dat deze deelverzamelingen niet hoeven te worden meegegeven. Alleen als er expliciet om gevraagd wordt. Dit gebeurt via de expansie parameter.

Foutafhandeling

Indien een expansion wordt opgegeven welke niet voor mag komen bij een entiteit, wordt een preconditie fout gegenereerd.

 {  
   "error":{  
      "code":412,
      "message":"Precondition Failed: extra contains an invalid expansion for entity object"
   }
}

Voorbeeld

Om te laten zien wat expansie doet, is het zoeken een goed voorbeeld.
Om te zoeken in groepen, wordt het volgende request gebruikt:

 GET api/rest/group/search/?expand=objects&page=1&per_page=5

levert dit (gedeeltelijk weergegeven):

 {  
   "page":1,
   "pages":1,
   "per_page":5,
   "total":2,
   "groups":[  
      {  
         "id":"1",
         "type":"group",
         "desc":"Bungalow",
         "long_desc":"Bungalow",
         "long_memo":"",
         "total_weight":0,
         "total_objects":2,
         "weight":1,
         "objects":[  
            {  
               "id":17,
               "desc":"Bungalow standaard",
               "long_desc":"Bungalow standaard"
            },
            {  
               "id":18,
               "desc":"Bungalow comfort",
               "long_desc":"Bungalow comfort"
            }

Als de expansie wordt uitgebreid met slots:

 GET api/rest/group/search/?expand=objects,slots&page=1&per_page=5

levert dit (gedeeltelijk weergegeven):

 {  
   "page":1,
   "pages":1,
   "per_page":5,
   "total":2,
   "groups":[  
      {  
         "id":"1",
         "type":"group",
         "desc":"Bungalow",
         "long_desc":"Bungalow",
         "long_memo":"",
         "total_weight":0,
         "total_objects":2,
         "weight":1,
         "objects":[  
            {  
               "id":17,
               "desc":"Bungalow standaard",
               "long_desc":"Bungalow standaard",
               "slots":{  
                  "2012-04-16 00:00:00":{  
                     "DateFrom":"2012-04-16 00:00:00",
                     "Request":false,
                     "DateTill":"2012-04-20 00:00:00",
                     "Nights":4,
                     "Days":5,
                     "Free":4,
                     "Booked":1
                  },
                  "2012-04-20 00:00:00":{  
                     "DateFrom":"2012-04-20 00:00:00",
                     "Request":false,
                     "DateTill":"2012-04-23 00:00:00",
                     "Nights":3,
                     "Days":4,
                     "Free":5,
                     "Booked":0
                  },

Zoals wordt getoond, verschijnen in het tweede response de slots met details.

Functionele informatie: