Aller au contenu principal

Appendix C. Using Problem Details with Other Formats (Utilisation des détails de problème avec d'autres formats)

Dans certaines situations, il peut être avantageux d'intégrer les détails de problème dans des formats autres que ceux définis ici. Par exemple, une API qui utilise HTML [HTML5] pourrait vouloir intégrer également les détails de problème dans ses réponses.

Les concepteurs d'API remplissant ce cas d'utilisation sont encouragés à assurer la cohérence. Par exemple, en utilisant les formats de problèmes, cela peut être accompli en transformant simplement le contenu du document de problème JSON/XML via XSLT [XSLT], et en l'incluant dans le document de réponse en tant que microdonnées [HTML5] ou RDFa [RDFA].

Par exemple, un service décrivant les détails du problème dans un document HTML pourrait représenter les données en utilisant Microdata comme ceci:

<div itemscope itemtype="urn:ietf:rfc:9457">
<p>
Type: <span itemprop="type">https://example.com/probs/out-of-credit</span>
</p>
<p>
Title: <span itemprop="title">You do not have enough credit.</span>
</p>
<p>
Detail: <span itemprop="detail">Your current balance is 30, but that costs 50.</span>
</p>
<p>
Instance: <span itemprop="instance">/account/12345/msgs/abc</span>
</p>
<p>
Balance: <span itemprop="balance">30</span>
</p>
<p>
Accounts:
</p>
<ul>
<li itemprop="accounts">/account/12345</li>
<li itemprop="accounts">/account/67890</li>
</ul>
</div>

ou en utilisant RDFa:

<div vocab="urn:ietf:rfc:9457" typeof="">
<p>
Type: <span property="type">https://example.com/probs/out-of-credit</span>
</p>
<p>
Title: <span property="title">You do not have enough credit.</span>
</p>
<p>
Detail: <span property="detail">Your current balance is 30, but that costs 50.</span>
</p>
<p>
Instance: <span property="instance">/account/12345/msgs/abc</span>
</p>
<p>
Balance: <span property="balance">30</span>
</p>
<p>
Accounts:
</p>
<ul>
<li property="accounts">/account/12345</li>
<li property="accounts">/account/67890</li>
</ul>
</div>

Notez que ces exemples ne sont pas destinés à être normatifs; ils sont fournis uniquement à titre d'illustration.