Modelos REST - Depósitos

De Energía y Red

Contenido

Paso 0

El usuario se autentifica en el sistema.

Paso 1

El usuario utiliza la URI http://gruposp2p.org/depositos?filtrar=parametros para buscar depósitos:

  • Respuesta del servidor:
200 OK
Content-Type: application/vnd.gruposp2p.org.deposito+xml;charset=UTF-8

<depositos>
    <deposito id="1111111">
        <link href="http://gruposp2p.org/deposito/1111111" rel="auto"/>
        <link rel="http://gruposp2p.org/rel/transferencia editar"
              type="application/vnd.gruposp2p.org.transferencia+xml"
              href="http://gruposp2p.org/transferencias"/>
        <link rel="http://gruposp2p.org/rel/usuario"
              type="application/vnd.gruposp2p.org.usuario+xml"
              href="http://gruposp2p.org/usuario/3434343"/>
        <nivel fluido="agua">1234.56</nivel>
    </deposito>
    <deposito id="2222222">
        <link href="http://gruposp2p.org/deposito/2222222" rel="auto"/>
        <link rel="http://gruposp2p.org/rel/transferencia"
              type="application/vnd.gruposp2p.org.transferencia+xml"
              href="http://gruposp2p.org/transferencias"/>
        <link rel="http://gruposp2p.org/rel/usuario"
              type="application/vnd.gruposp2p.org.usuario+xml"
              href="http://gruposp2p.org/usuario/9898989"/>
        <nivel fluido="agua">534.62</nivel>
    </deposito>
</depositos>

Paso 2

Si el usuario quiere obtener más información sobre un determinado depósito puede hacer una petición GET a la URI con la relación auto.

Paso 3

Para iniciar transferencias entre depósitos el usuario debe extraer la URI de los elementos con las relaciones http://gruposp2p.org/rel/transferencia editar y realizar una petición POST a la misma.

  • Petición al servidor:
POST /transferencias
Host: gruposp2p.org/
Content-Type: application/vnd.gruposp2p.org.transferencia+xml;charset=UTF-8

<transferencia>
    <origen depositoID="1111111"/>
    <destino depositoID="2222222"/>
    <cantidad fluido="agua">100</cantidad>
    <nota>Mantenimiento</nota>
</transferencia>
  • Si todo va bien, la respuesta del servidor debería ser similar a:
201 Created
Content-Type: application/vnd.gruposp2p.org.transferencia+xml;charset=UTF-8

<transferencia transferenciaID="3213213">
    <link rel="auto" href="http://gruposp2p.org/transferencia/3213213"/>
    <link rel="http://gruposp2p.org/rel/transferencia/origen" 
          type="vnd.gruposp2p.org.deposito+xml"
          href="http://gruposp2p.org/deposito/1111111"/>
    <link rel="http://gruposp2p.org/rel/transferencia/destino"
          type="vnd.gruposp2p.org.deposito+xml"
          href="http://gruposp2p.org/deposito/2222222"/>
    <link rel="http://gruposp2p.org/rel/transferencia/estado"
          type="application/vnd.gruposp2p.org.estado+xml"
          href="http://gruposp2p.org/estado/3213213"/>
    <cantidad fluido="agua">100</cantidad>
    <nota>Mantenimiento</nota>
</transferencia>

API Depósitos

URIs

http://gruposp2p.org/depositos?filtrar=parametros

  • Métodos HTTP soportados:
    • GET:
    • POST:
  • Formato de intercambio de datos soportado (media type)
    • application/vnd.gruposp2p.org.deposito+xml
  • Parámetros de servicio (FALTA)

Tipos de Relaciones

  • auto:
    • La URI de los enlaces con este tipo de relación representan al recurso contenedor.
  • http://gruposp2p.org/rel/transferencia editar:
    • La URI de los enlaces con esta relación se pueden usar para crear nuevos recursos que representan transferencias entre depósitos.
  • http://gruposp2p.org/rel/usuario:
    • La URI de los enlaces con esta relación se pueden usar para consultar un recurso usuario.
  • http://gruposp2p.org/rel/transferencia/origen:
    • La URI de los enlaces con esta relación identifica el origen de una transferencia.
  • http://gruposp2p.org/rel/transferencia/destino:
    • La URI de los enlaces con esta relación identifica el destino de una transferencia.
  • http://gruposp2p.org/rel/transferencia/estado:
    • La URI de los enlaces con esta relación identifica el estado de una transferencia.

Tipos de formatos de intercambio (Media Types)

  • application/vnd.gruposp2p.org.deposito+xml
    • Las representaciones con este tipo de formato contienen un documento 'depósitos'. Ver schema XML para más detalles.
  • application/vnd.gruposp2p.org.transferencia+xml
    • Las representaciones con este tipo de formato contienen un documento 'transferencias'. Ver schema XML para más detalles.
  • application/vnd.gruposp2p.org.estado+xml
    • Las representaciones con este tipo de formato contienen un documento 'estado' que sirve para representar el recurso 'estado de transferencia'. Ver schema XML para más detalles.
  • application/vnd.gruposp2p.org.usuario+xml
    • Las representaciones con este tipo de formato contienen un documento 'usuario'. Ver schema XML para más detalles.