Registrieren    Ediscio Mobile    Über Ediscio    Anleitung    Hilfe    Ediscio on Twitter Ediscio on Facebook Ediscio in English Ediscio auf Deutsch    

Ediscio API

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&ouml;sisch Grundlagen]]></cardBoxName>
          <cardBoxDescription>
               <![CDATA[<p>Franz&ouml;sisch d&egrave;s le
               d&eacute;but - Franz&ouml;sisch lernen von Anfang an.</p>
               <p>Grundwortschatz zur Einf&uuml;hrung.</p>]]>
	  </cardBoxDescription>
          <folderKey>1</folderKey>
          <folderName><![CDATA[Franz&ouml;sisch]]></folderName>
          <numOfCards>137</numOfCards>
          <numOfLearned>114</numOfLearned>
     </cardBox>
     <cardBox>
          <cardBoxNbr>79</cardBoxNbr>
          <cardBoxName><![CDATA[Franz&ouml;sisch Lektion 1]]></cardBoxName>
          <cardBoxDescription><![CDATA[]]></cardBoxDescription>
          <folderKey>1</folderKey>
          <folderName><![CDATA[Franz&ouml;sisch]]></folderName>
          <numOfCards>87</numOfCards>
          <numOfLearned>87</numOfLearned>
     </cardBox>
</cardBoxes>
oder im JSON-Format:
{
  "cardBoxes" : [ {
    "cardBoxNbr" : 27,
    "cardBoxName" : "<![CDATA[Franz&ouml;sisch Grundlagen]]>",
    "cardBoxDescription" : "<![CDATA[<p>Franz&ouml;sisch d&egrave;s le d&eacute;but
                             - Franz&ouml;sisch lernen von Anfang an.</p><p>Grundwortschatz
                             zur Einf&uuml;hrung.</p>]]>",
    "folderKey" : 1,
    "folderName" : "<![CDATA[Franz&ouml;sisch]]>",
    "numOfCards" : 136,
    "numOfLearned" : 113
  }, {
    "cardBoxNbr" : 79,
    "cardBoxName" : "<![CDATA[Franz&ouml;sisch Lektion 1]]>",
    "cardBoxDescription" : "<![CDATA[]]>",
    "folderKey" : 1,
    "folderName" : "<![CDATA[Franz&ouml;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/27
Ergebnis eines Aufrufs in XML:
<?xml version="1.0" encoding="UTF-8"?>
<cardBox>
    <card>
        <cardNbr>18256</cardNbr>
        <cardBoxNbr>27</cardBoxNbr>
        <selectedForLearning>1</selectedForLearning>
        <question>&lt;![CDATA[nach hause kommen/gehen]]&gt;</question>
        <answer>&lt;![CDATA[rentrer]]&gt;</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>&lt;![CDATA[vorbeigehen, vorbeikommen]]&gt;</question>
        <answer>&lt;![CDATA[passer]]&gt;</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
  }
}
Blog      API      Datenschutzerklärung      Impressum      Nutzungsbedingungen / Urheberrecht      Haftungsausschluss