Modelos REST - Aula
De Energía y Red
Este documento pretende describir:
- Las URIs de los recursos que proporcionan puntos de entrada a la aplicación.
- El nombre de los recursos y sus tipos de formato de intercambio.
- La lista de las relaciones entre recursos.
- Los tipos de formato de intercambio y los XML utilizados.
- Los schemas utilizados donde proceda (si el formato de la representación es JSON evidentemente esta información no hará falta).
Para conseguir información sobre un determinado alumno se debería realizar una petición http:
GET /aula/course/coursegroup/student-id
La respuesta llevará información sobre el alumno y enlaces o referencias que se pueden usar para obtener más información.
Since you want to retrieve information, you use the HTTP GET verb. The path /users/ my-user-id references the resource for information about a specific user. The response that comes back not only includes information about the particular user (such as first and last name, preferred viewing formats, and so forth), it also may include links or references that you can use to retrieve more information, such as links to the user's queues. Each piece of data is identified by an XML tag. For example, the following illustrates the data a response might include: Comando que devuelve un curso GET http://localhost:8182/rest/aula/curso Comando que actualiza un curso PUT http://localhost:8182/dictionary/word
Para ver las puntuaciones de un alumno se debería lanzar una consulta http://gruposp2p.org/aula/studentScores?findby=someparams, el servidor debería responder algo parecido a:
200 OK
Content-Type: application/vnd.gruposp2p.org.studentScores+xml;charset=UTF-8
<studentScores xmlns="urn:org:gruposp2p:studentScores">
<studentScore>
<id>AZA12093</id>
<link href="http://gruposp2p.org/aula/studentScore/AZA12093" rel="self"/>
<link rel="http://gruposp2p.org/rel/evaluate"
type="application/vnd.gruposp2p.org.evaluation+xml"
href="http://gruposp2p.org/aula/evaluations"/>
<link rel="http://gruposp2p.org/rel/student"
type="application/vnd.gruposp2p.org.student+xml"
href="http://gruposp2p.org/student/7t676323a"/>
<scoreValue>9.95</scoreValue>
</studentScore>
<studentScore>
<id>ADK31242</id>
<link href="http://gruposp2p.org/aula/studentScore/ADK31242" rel="self"/>
<link rel="http://gruposp2p.org/rel/evaluation"
type="application/vnd.gruposp2p.org.evaluation+xml"
href="http://gruposp2p.org/aula/evaluations"/>
<link rel="http://gruposp2p.org/rel/student"
type="application/vnd.gruposp2p.org.student+xml"
href="http://gruposp2p.org/student/ADK31242"/>
<scoreValue>5.62</scoreValue>
</studentScore>
</studentScores>
Si el cliente desea buscar más información sobre una determinada nota puede extraer sus URIs de los enlaces con la relación 'self' y hacer peticiones GET a las mismos. Para modificar o introducir una evaluación la aplicación cliente tendría que extraer la URI con la relación 'http://gruposp2p.org/rel/evaluation' y hacer una petición POST enviado una representación con un tipo de formato acorde al parámetro 'type'.
POST /evaluations
Host: gruposp2p.org
Content-Type: application/vnd.gruposp2p.org.evaluation+xml;charset=UTF-8
<evaluation xmlns="urn:org:gruposp2p:studentScores">
<student-id>dgfhg093</student-id>
<itemevaluable-id>gtjhgkhjk</itemevaluable-id>
<value>8.9</value>
<note>Lo que se quiera apuntar</note>
</evaluation>
Después de haber modificado o introducido la calificación 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>
Métodos
GET: obtiene contenido XML, devuelve 200 si la respuesta a tenido éxito y 404 si no se ha encontrado el recurso.
POST: crea/actualiza contendio, devuelve 201 (creado) en caso de éxito y 200 si no se ha creado el recurso.
DELETE: borra contenido, devuelve 204 (Sin contenido) en caso de éxito y 400 en caso de fallo.
GET: obtiene contenido XML, devuelve 200 si la respuesta a tenido éxito y 404 si no se ha encontrado el recurso. POST: crea/actualiza contendio, devuelve 201 (creado) en caso de éxito y 200 si no se ha creado el recurso. DELETE: borra contenido, devuelve 204 (Sin contenido) en caso de éxito y 400 en caso de fallo.

