Modelos REST - Karma
De Energía y Red
Este documento pretende describir: URIs de los recursos que proporcionan puntos de entrada a la aplicación. Nombre de los recursos. Lista de las relaciones entre recursos. Tipos de formato de intercambio de las representaciones de recursos y los XML utilizados. Los schemas utilizados (si el formato de la representación fuera JSON evidentemente esta información no haría falta).
Las aplicaciones pueden usar http://gruposp2p.org/karmas?findby=someparams para buscar karmas. El servidor responderá:
200 OK
Content-Type: application/vnd.gruposp2p.org.karmas+xml;charset=UTF-8
<karmas xmlns="urn:org:gruposp2p:karmas">
<karma>
<id>AZA12093</id>
<link href="http://gruposp2p.org/karma/AZA12093" rel="self"/>
<link rel="http://gruposp2p.org/rel/karmaTransfer"
type="application/vnd.gruposp2p.org.karmaTransfer+xml"
href="http://gruposp2p.org/karmaTransfers"/>
<link rel="http://gruposp2p.org/rel/karmaOwner"
type="application/vnd.bank.org.karmaOwner+xml"
href="http://gruposp2p.org/karmaOwner/7t676323a"/>
<balance>993.95</balance>
</karma>
<karma>
<id>ADK31242</id>
<link href="http://gruposp2p.org/karma/ADK31242" rel="self"/>
<link rel="http://gruposp2p.org/rel/karmaTransfer"
type="application/vnd.gruposp2p.org.karmaTransfer+xml"
href="http://gruposp2p.org/karmaTransfers"/>
<link rel="http://gruposp2p.org/rel/karmaOwner"
type="application/vnd.bank.org.karmaOwner+xml"
href="http://gruposp2p.org/karmaOwner/7t676323a"/>
<balance>534.62</balance>
</karma>
</karmas>
Si el cliente desea buscar más información sobre un determinado karma puede extraer sus URIs de los enlaces con la relación 'self' y hacer peticiones GET a las mismos. Para realizar una transferencia entre depósitos la aplicación cliente tendría que extraer la el URI con la relación 'http://gruposp2p.org/rel/karmaTransfer' y hacer una petición POST enviado una representación con un tipo de formato acorde al parámetro 'type'.
POST /karmaTransfers
Host: gruposp2p.org
Content-Type: application/vnd.gruposp2p.org.karmaTransfer+xml;charset=UTF-8
<karmaTransfer xmlns="urn:org:gruposp2p:karmas">
<from>karma:AZA12093</from>
<to>karma:ADK31242</to>
<value>17</value>
<note>Lo que se quiera apuntar</note>
</karmaTransfer>
Después de haber modificado o introducido la transferencia de karma el servidor responderá:
201 Created
Content-Type: application/vnd.gruposp2p.org.evaluation+xml;charset=UTF-8
<transfer xmlns="urn:org:gruposp2p:studentScores">
<link rel="self"
href="http://gruposp2p.org/evaluation/XTA8763"/>
<link rel="http://gruposp2p.org/rel/student"
type="application/vnd.gruposp2p.org.student+xml"
href="http://gruposp2p.org/student/AZA12093"/>
<link rel="http://gruposp2p.org/rel/itemevaluable"
type="application/vnd.gruposp2p.org.itemevaluable+xml"
href="http://gruposp2p.org/itemevaluable/ADK31242"/>
<id>evaluation:XTA8763</id>
<value>8.9</value>
<note>Lo que se quiera apuntar</note>
</transfer>

