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>






						
						
Herramientas personales