2014-05-22 7 views
7

In Sakai, ottengo con successo un Assignemnt tramite l'url: http://xxx/direct/assignment/ASSIGNMENTID.xml. Tuttavia, in questa entità, non esiste un contesto dettagliato (intendo l'istruzione dell'insegnamento da parte dell'insegnante). C'è solo un elemento di contenuto contentReference in XML.Come ottenere il contenuto di un'Assegnazione in Sakai tramite REST

<contentReference>/assignment/c/mercury/b0de53c7-09b6-4ba0-964b-cb0a9e5a028d</contentReference> 

Quando ho seguito questo link, ho ricevuto 404 Errore:

tentato di accedere ad un percorso un'entità URL (/ assegnazione/c/Mercury/b0de53c7-09b6-4ba0-964b-cb0a9e5a028d) per un'entità (/ assignment/c) che non esiste

Ho provato Google per documento API sull'entità Sakai, ma risulta essere datato (alcuni url sono errati nella mia versione demo di Sakai 2.9.3). Poi ho provato a scavare nel codice sorgente di Sakai. Tuttavia, ciò che ho trovato è solo un file sul server di rsmart:

In esso ho trovato:

 throw new IllegalArgumentException(
       "Must include context and assignmentId in the path (" 
         + view 
         + "): e.g. /assignment/a/{context}/{assignmentId}"); 

ho provato utilizzando questo URL sul mio server per ottenere il contenuto dettagliato (in particolare le istruzioni dell'insegnante). Ancora un altro errore 404 con lo stesso contenuto di cui sopra.

Infine, ho trovato che il /assignment/a/ potrebbe essere un'ortografia errata di /assignment/annc/{context}/{assignmentId}. Così ora ho mandato:

http://localhost:8080/direct/assignment/annc/mercury/403d28b4-e152-463d-a615-972db97d34d3.xml 

Un altro errore pop out:

stato HTTP 500 - EntityEncodingException: impossibile gestire la richiesta di uscita per il formato XML per questo percorso (/ assegnazione/annc/Mercury/403d28b4-e152- 463d-a615-972db97d34d3.xml) per prefisso (assegnazione) per entità (/ assegnazione/annc), richiesta url (/assignment/annc/mercury/403d28b4-e152-463d-a615-972db97d34d3.xml): Errore durante la codifica dell'output interno di entità:/incarico/annc

Qualche idea sull'url per ottenere i dati delle istruzioni dell'insegnante tramite RESTful? Grazie.


I dati XML di un incarico.

<assignment type='bean' size='29'> 
    <access type='bean' size='0'> 
    </access> 
    <attachments type='collection' size='1'> 
    <decoratedattachment type='bean' size='2'> 
     <name>LC Circuit (show name).png</name> 
     <url>http://localhost:8080/access/content/attachment/mercury/%E4%BD%9C%E4%B8%9A/a11ef34a-0578-433a-ba7e-9c3bad948bf5/1111.png</url> 
    </decoratedattachment> 
    </attachments> 
    <authorLastModified>admin</authorLastModified> 
    <authors type='collection' size='0'> 
    </authors> 
    <closeTime type='bean' size='2'> 
    <display>2014-9-12 下午5:00</display> 
    <time type='number'>1410512400000</time> 
    </closeTime> 
    <closeTimeString>2014-9-12 下午5:00</closeTimeString> 
    <content/> 
    <contentReference>/assignment/c/mercury/b0de53c7-09b6-4ba0-964b-cb0a9e5a028d</contentReference> 
    <context>mercury</context> 
    <creator>admin</creator> 
    <dropDeadTime type='bean' size='2'> 
    <display>2014-8-12 下午5:00</display> 
    <time type='number'>1407834000000</time> 
    </dropDeadTime> 
    <dropDeadTimeString>2014-8-12 下午5:00</dropDeadTimeString> 
    <dueTime type='bean' size='2'> 
    <display>2014-8-12 下午5:00</display> 
    <time type='number'>1407834000000</time> 
    </dueTime> 
    <dueTimeString>2014-8-12 下午5:00</dueTimeString> 
    <groups type='collection' size='0'> 
    </groups> 
    <id>403d28b4-e152-463d-a615-972db97d34d3</id> 
    <openTime type='bean' size='2'> 
    <display>2014-5-5 下午12:00</display> 
    <time type='number'>1399262400000</time> 
    </openTime> 
    <openTimeString>2014-5-5 下午12:00</openTimeString> 
    <position_order type='number'>0</position_order> 
    <section></section> 
    <status>开始</status> 
    <timeCreated type='bean' size='2'> 
    <display>2014-5-5 上午11:33</display> 
    <time type='number'>1399260782158</time> 
    </timeCreated> 
    <timeLastModified type='bean' size='2'> 
    <display>2014-5-6 上午8:46</display> 
    <time type='number'>1399337194163</time> 
    </timeLastModified> 
    <title>A test assign</title> 
    <draft type='boolean'>false</draft> 
    <entityReference>/assignment/403d28b4-e152-463d-a615-972db97d34d3</entityReference> 
    <entityURL>http://localhost:8080/direct/assignment/403d28b4-e152-463d-a615-972db97d34d3</entityURL> 
    <entityId>403d28b4-e152-463d-a615-972db97d34d3</entityId> 
    <entityTitle>A test assign</entityTitle> 
</assignment> 
+0

Spiacente, finalmente ho scoperto che questo è causato da un cattivo formato del contenuto del mio incarico. – taper

risposta

7

NOTA: Questa risposta è per Sakai 10. Se si dispone di una versione precedente è necessario aggiungere un po 'di manualmente nuove funzionalità che sono state aggiunte al progetto Keitai (https://jira.sakaiproject.org/browse/SAK-23358).

Utilizzo del Sakai 10.x notturna del server:

http://nightly2.sakaiproject.org:8081/portal 

e un sito con il seguente ID:

61a1ebbd-e507-4ca3-8f88-65abca0803d9 

Questo URL otterrà una lista delle assegnazioni in corso:

http://nightly2.sakaiproject.org:8081/direct/assignment/site/61a1ebbd-e507-4ca3-8f88-65abca0803d9.json 

(che restituisce JSON come mostrato di seguito)

{"entityPrefix": "assignment", "assignment_collection": [ 
{ 
    "access": { 
    }, 
    "attachments": [], 
    "authorLastModified": "admin", 
    "authors": [], 
    "closeTime": { 
    "display": "Jun 11, 2014 5:00 pm", 
    "time": 1402520400000 
    }, 
    "closeTimeString": "Jun 11, 2014 5:00 pm", 
    "content": null, 
    "contentReference": "\/assignment\/c\/61a1ebbd-e507-4ca3-8f88-65abca0803d9\/1fd9f025-2974-48d1-bcb5-ef47c4e89a30", 
    "context": "61a1ebbd-e507-4ca3-8f88-65abca0803d9", 
    "creator": "admin", 
    "dropDeadTime": { 
    "display": "Jun 11, 2014 5:00 pm", 
    "time": 1402520400000 
    }, 
    "dropDeadTimeString": "Jun 11, 2014 5:00 pm", 
    "dueTime": { 
    "display": "Jun 11, 2014 5:00 pm", 
    "time": 1402520400000 
    }, 
    "dueTimeString": "Jun 11, 2014 5:00 pm", 
    "groups": [], 
    "id": "8d96871c-8dcb-4963-b74a-f478dee53142", 
    "instructions": "<p>This is an assignment<\/p>", 
    "openTime": { 
    "display": "Jun 4, 2014 12:00 pm", 
    "time": 1401897600000 
    }, 
    "openTimeString": "Jun 4, 2014 12:00 pm", 
    "position_order": 0, 
    "section": "", 
    "status": "Open", 
    "timeCreated": { 
    "display": "Jun 4, 2014 11:30 pm", 
    "time": 1401939011264 
    }, 
    "timeLastModified": { 
    "display": "Jun 4, 2014 11:30 pm", 
    "time": 1401939011286 
    }, 
    "title": "AZ assignment", 
    "draft": false, 
    "entityReference": "\/assignment\/8d96871c-8dcb-4963-b74a-f478dee53142", 
    "entityURL": "http:\/\/nightly2.sakaiproject.org:8081\/direct\/assignment\/8d96871c-8dcb-4963-b74a-f478dee53142", 
    "entityId": "8d96871c-8dcb-4963-b74a-f478dee53142", 
    "entityTitle": "AZ assignment" 
} 
]} 

Da che si può trovare l'ID di un incarico nella lista (che è anche possibile ottenere altri modi) e quindi restituire i dati di un singolo incarico in questo modo:

http://nightly2.sakaiproject.org:8081/direct/assignment/item/8d96871c-8dcb-4963-b74a-f478dee53142.json 

(che restituisce JSON come mostrato di seguito)

{ 
    "access": { 
    }, 
    "attachments": [], 
    "authorLastModified": "admin", 
    "authors": [], 
    "closeTime": { 
    "display": "Jun 11, 2014 5:00 pm", 
    "time": 1402520400000 
    }, 
    "closeTimeString": "Jun 11, 2014 5:00 pm", 
    "content": null, 
    "contentReference": "\/assignment\/c\/61a1ebbd-e507-4ca3-8f88-65abca0803d9\/1fd9f025-2974-48d1-bcb5-ef47c4e89a30", 
    "context": "61a1ebbd-e507-4ca3-8f88-65abca0803d9", 
    "creator": "admin", 
    "dropDeadTime": { 
    "display": "Jun 11, 2014 5:00 pm", 
    "time": 1402520400000 
    }, 
    "dropDeadTimeString": "Jun 11, 2014 5:00 pm", 
    "dueTime": { 
    "display": "Jun 11, 2014 5:00 pm", 
    "time": 1402520400000 
    }, 
    "dueTimeString": "Jun 11, 2014 5:00 pm", 
    "groups": [], 
    "id": "8d96871c-8dcb-4963-b74a-f478dee53142", 
    "instructions": "<p>This is an assignment<\/p>", 
    "openTime": { 
    "display": "Jun 4, 2014 12:00 pm", 
    "time": 1401897600000 
    }, 
    "openTimeString": "Jun 4, 2014 12:00 pm", 
    "position_order": 0, 
    "section": "", 
    "status": "Open", 
    "timeCreated": { 
    "display": "Jun 4, 2014 11:30 pm", 
    "time": 1401939011264 
    }, 
    "timeLastModified": { 
    "display": "Jun 4, 2014 11:30 pm", 
    "time": 1401939011286 
    }, 
    "title": "AZ assignment", 
    "draft": false, 
    "entityReference": "\/assignment\/8d96871c-8dcb-4963-b74a-f478dee53142", 
    "entityURL": "http:\/\/nightly2.sakaiproject.org:8081\/direct\/assignment\/8d96871c-8dcb-4963-b74a-f478dee53142", 
    "entityId": "8d96871c-8dcb-4963-b74a-f478dee53142", 
    "entityTitle": "AZ assignment" 
} 
+0

Grazie. È piuttosto una guida attraverso. – taper

Problemi correlati