Il peut arriver quâune ressource de type collection contienne plusieurs ressources de types lĂ©gĂšrement diffĂ©rents. Par exemple, des produits de type diffĂ©rents : livres et films.
Tout dâabord, il faut harmoniser le modĂšle de la ressource au maximum. Par exemple, livres et films ont un prix, il faut que ce soit la mĂȘme propriĂ©tĂ©. MĂȘme si tel nâest pas le cas dans votre modĂšle de donnĂ©es (Ex. scraping), crĂ©ez des computed fields. On peut imaginer naĂŻvement un computed field price
qui calcule le prix à partir de la durée du film :).
Il suffit alors dâajouter un field type
au modĂšle de votre ressource (quâil faudra dĂ»ment documentĂ©).
Cela permet ensuite cÎté client de remapper vers les classes associées.
Lâabus de polymorphisme nuit gravement Ă la santĂ© de votre API et de ses proches.
{"objects": [{"id": "1","author": {"id": "3"},"price": {"amount": 10, "currency": "EUR"},"type": "book",},{"duration": 5400,"id": "2","price": {"amount": 6, "currency": "USD"},"type": "movie"}]}
âhttps://swagger.io/docs/specification/data-models/inheritance-and-polymorphism/â
â