Die Ediscio-API funktioniert nach der REST-Spezifikation mit BASIC-Authentifizierung. Daten werden im JSON- und XML-Format geliefert. Entscheidend ist hierbei, ob im Header einer Anfrage der Schlüssel "accept" den Wert "application/xml" oder "application/json" hat. Es gibt derzeit Aufrufe zur Auflistung aller aktiven Karteien, zum Download aller Karteikarten einer Kartei und zum Senden von Lernstatistiken an Ediscio.
Empfohlenes Tool zum Testen der API
- RESTClient Ein Java-basiertes GUI zum Ansprechen von REST-Schnittstellen
API-Aufrufe
Auflistung aller aktiven Karteien
http://www.ediscio.de/api/activecardboxes
liefert XML-Daten der Art:
<?xml version="1.0" encoding="UTF-8"?>
<cardBoxes>
<cardBox>
<cardBoxNbr>27</cardBoxNbr>
<cardBoxName><![CDATA[Französisch Grundlagen]]></cardBoxName>
<cardBoxDescription>
<![CDATA[<p>Französisch dès le
début - Französisch lernen von Anfang an.</p>
<p>Grundwortschatz zur Einführung.</p>]]>
</cardBoxDescription>
<folderKey>1</folderKey>
<folderName><![CDATA[Französisch]]></folderName>
<numOfCards>137</numOfCards>
<numOfLearned>114</numOfLearned>
</cardBox>
<cardBox>
<cardBoxNbr>79</cardBoxNbr>
<cardBoxName><![CDATA[Französisch Lektion 1]]></cardBoxName>
<cardBoxDescription><![CDATA[]]></cardBoxDescription>
<folderKey>1</folderKey>
<folderName><![CDATA[Französisch]]></folderName>
<numOfCards>87</numOfCards>
<numOfLearned>87</numOfLearned>
</cardBox>
</cardBoxes>
oder im JSON-Format:
{
"cardBoxes" : [ {
"cardBoxNbr" : 27,
"cardBoxName" : "<![CDATA[Französisch Grundlagen]]>",
"cardBoxDescription" : "<![CDATA[<p>Französisch dès le début
- Französisch lernen von Anfang an.</p><p>Grundwortschatz
zur Einführung.</p>]]>",
"folderKey" : 1,
"folderName" : "<![CDATA[Französisch]]>",
"numOfCards" : 136,
"numOfLearned" : 113
}, {
"cardBoxNbr" : 79,
"cardBoxName" : "<![CDATA[Französisch Lektion 1]]>",
"cardBoxDescription" : "<![CDATA[]]>",
"folderKey" : 1,
"folderName" : "<![CDATA[Französisch]]>",
"numOfCards" : 87,
"numOfLearned" : 87
} ]
}
Download aller Karteikarten einer Kartei
http://www.ediscio.de/api/cardbox/x
Hierbei ist x eine cardBoxNbr (s.o.) - ein Beispiel eines Aufrufs wäre also:
http://www.ediscio.de/api/cardbox/27Ergebnis eines Aufrufs in XML:
<?xml version="1.0" encoding="UTF-8"?>
<cardBox>
<card>
<cardNbr>18256</cardNbr>
<cardBoxNbr>27</cardBoxNbr>
<selectedForLearning>1</selectedForLearning>
<question><![CDATA[nach hause kommen/gehen]]></question>
<answer><![CDATA[rentrer]]></answer>
<questionImage/>
<answerImage/>
<questionSound/>
<answerSound/>
<created>2009-03-25 21:32:01</created>
<updated>2009-03-25 21:32:01</updated>
<timesKnown>2</timesKnown>
<timesNotKnown>0</timesNotKnown>
<knownInRow>2</knownInRow>
<lastPlayed>2010-04-01 23:22:26</lastPlayed>
<daystowait>0</daystowait>
</card>
<card>
<cardNbr>18255</cardNbr>
<cardBoxNbr>27</cardBoxNbr>
<selectedForLearning/>
<question><![CDATA[vorbeigehen, vorbeikommen]]></question>
<answer><![CDATA[passer]]></answer>
<questionImage/>
<answerImage/>
<questionSound/>
<answerSound/>
<created>2009-03-25 21:31:38</created>
<updated>2009-03-25 21:31:38</updated>
<timesKnown>4</timesKnown>
<timesNotKnown>0</timesNotKnown>
<knownInRow>4</knownInRow>
<lastPlayed>2009-08-14 13:49:55</lastPlayed>
<daystowait>0</daystowait>
</card>
</cardBox>
oder im JSON-Format:
{
"cardBox" : [ {
"cardNbr" : 18256,
"cardBoxNbr" : 27,
"selectedForLearning" : true,
"question" : "<![CDATA[nach hause kommen/gehen]]>",
"answer" : "<![CDATA[rentrer]]>",
"questionImage" : "",
"answerImage" : "",
"questionSound" : "",
"answerSound" : "",
"created" : "2009-03-25 21:32:01",
"updated" : "2009-03-25 21:32:01",
"timesKnown" : 2,
"timesNotKnown" : 0,
"knownInRow" : 2,
"lastPlayed" : "2010-04-01 23:22:26",
"daystowait" : 0
}, {
"cardNbr" : 18255,
"cardBoxNbr" : 27,
"selectedForLearning" : false,
"question" : "<![CDATA[vorbeigehen, vorbeikommen]]>",
"answer" : "<![CDATA[passer]]>",
"questionImage" : "",
"answerImage" : "",
"questionSound" : "",
"answerSound" : "",
"created" : "2009-03-25 21:31:38",
"updated" : "2009-03-25 21:31:38",
"timesKnown" : 4,
"timesNotKnown" : 0,
"knownInRow" : 4,
"lastPlayed" : "2009-08-14 13:49:55",
"daystowait" : 0
} ]
}
Senden von Lernstatistiken
http://www.ediscio.de/api/putstatistics
Beim Senden der Statistiken wird das PUT-Verfahren verwendet. Bitte beachte, dass der Header-Wert "accept" in diesem Falle auch den Datentyp der gesendeten Daten charakterisiert, also "application/xml" oder "application/json".
Der Body eines solchen Requests sollte beispielsweise folgendermaßen aussehen:
XML:
<?xml version="1.0" encoding="UTF-8"?>
<statistics>
<cardStatistics>
<cardNbr>1523</cardNbr>
<known>1</known>
<dateTimeOfQuery>2010-04-30 17:30:55</dateTimeOfQuery>
</cardStatistics>
<cardStatistics>
<cardNbr>4523</cardNbr>
<known></known>
<dateTimeOfQuery>2010-04-30 17:34:55</dateTimeOfQuery>
</cardStatistics>
</statistics>JSON:
{
"statistics" : [ {
"cardNbr" : 18243,
"known" : true,
"dateTimeOfQuery" : "2010-04-30 17:30:55"
}, {
"cardNbr" : 18238,
"known" : true,
"dateTimeOfQuery" : "2010-05-01 12:15:40"
}, {
"cardNbr" : 4591,
"known" : false,
"dateTimeOfQuery" : "2010-05-01 12:17:34"
} ]
}
Eine Antwort erfolgt in der Form:
XML:
<?xml version="1.0" encoding="UTF-8"?>
<status>
<accepted>1</accepted>
</status>JSON:
{
"status" : {
"accepted" : true
}
}



