$attributes
Permet de sélectionner les attributs relationnels à obtenir à partir de la dataclass (par exemple, Company(1)?$attributes=employees.lastname
or Employee?$attributes=employer.name
).
Description
Lorsque vous avez des attributs relationnels dans une dataclass, utilisez $attributes
pour définir le chemin des attributs dont vous souhaitez obtenir les valeurs pour l'entité ou les entités associées.
Vous pouvez appliquer des $attributes
à une entité (par exemple, People (1)) ou à une entity selection (par exemple, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF).
Si
$attributes
n'est pas spécifié dans une requête, ou si la valeur "*" est passée, tous les attributs disponibles sont extraits. Les attributs d'entité relative sont extraits avec la forme simple : un objet avec la propriété__KEY
(clé primaire) etURI
. Les attributs des entités relatives ne sont pas extraits.Si
$attributes
est spécifié pour les attributs d'entité relative :$attributes=relatedEntity
: l'entité relative est retournée sous une forme simple (propriété __KEY différée (clé primaire)) etURI
.$attributes=relatedEntity.*
: tous les attributs de l'entité relative sont retournés$attributes=relatedEntity.attributePath1, relatedEntity.attributePath2, ...
: seuls ces attributs de l'entité relative sont retournés.
- Si
$attributes
est spécifié pour les attributs d'entités relatives :$attributes=relatedEntities.*
: toutes les propriétés des entités relatives sont retournées$attributes=relatedEntities.attributePath1, relatedEntity.attributePath2, ...
: seuls ces attributs des entités relatives sont retournés.
Exemples avec plusieurs entités relatives
Si nous passons la requête REST suivante pour la dataclasse Company (qui possède un attribut de relation "employees"):
GET /rest/Company(1)/?$attributes=employees.lastname
Réponse :
{
"__entityModel": "Company",
"__KEY": "1",
"__TIMESTAMP": "2018-04-25T14:41:16.237Z",
"__STAMP": 2,
"employees": {
"__ENTITYSET": "/rest/Company(1)/employees?$expand=employees",
"__GlobalStamp": 50,
"__COUNT": 135,
"__FIRST": 0,
"__ENTITIES": [
{
"__KEY": "1",
"__TIMESTAMP": "2019-12-01T20:18:26.046Z",
"__STAMP": 5,
"lastname": "ESSEAL"
},
{
"__KEY": "2",
"__TIMESTAMP": "2019-12-04T10:58:42.542Z",
"__STAMP": 6,
"lastname": "JONES"
},
...
}
}
Si vous souhaitez obtenir tous les attributs des employés :
GET /rest/Company(1)/?$attributes=employees.*
Si vous souhaitez obtenir le nom de famille et les attributs de nom de poste des employés :
GET /rest/Company(1)/?$attributes=employees.lastname,employees.jobname
Exemples avec une entité relative
Si nous passons la requête REST suivante pour la dataclass Employee (qui a plusieurs attributs relationnels, y compris "employer") :
GET /rest/Employee(1)?$attributes=employer.name
Réponse :
{
"__entityModel": "Employee",
"__KEY": "1",
"__TIMESTAMP": "2019-12-01T20:18:26.046Z",
"__STAMP": 5,
"employer": {
"__KEY": "1",
"__TIMESTAMP": "2018-04-25T14:41:16.237Z",
"__STAMP": 0,
"name": "Adobe"
}
}
Si vous souhaitez obtenir tous les attributs de l'employeur :
GET /rest/Employee(1)?$attributes=employer.*
Si vous souhaitez obtenir les noms de famille de tous les employés de l'employeur :
GET /rest/Employee(1)?$attributes=employer.employees.lastname