Fork me on GitHub

Stud.IP: Rest.IP

Ein alternativer, "RESTful" Ansatz für Webservices basierend auf OAuth

API Dokumentation

/oauth
Autorisierung
/api/discovery
Informationen über die API
/api/courses
Veranstaltungen
/api/courses/forum
Forum
/api/courses/wiki
Wiki
/api/documents
Dateien
/api/messages
Nachrichten
/api/news
Ankündigungen
/api/semesters
Semester
/api/studip
Globale Einstellungen
/api/user
Nutzer
/api/contacts
Kontakte

Bekannte Plugin-Routes

/api/activities
Aktivitäten

Rest.IP

API-Dokumentation

Allgemeines

Bei jedem Request sendet die API den HTTP-Header X-Server-Timestamp ihren aktuellen Unix-Zeitstempel mit.

Zu beachten ist, dass bei sämtlichen Nutzerrückgabe auch der Nutzer mit der Id ____%system%____ vorkommen kann. Dies sind system-interne Vorgänge bzw. Benachrichtigungen und sollten als diese gekennzeichnet werden.

Autorisierung

Der Nutzer kann sich wahlweise mittels OAuth, der Standard-Stud.IP-Session oder der HTTP-Basic Authentication bei der API autorisieren.

Die OAuth-Autorisierung ist in dem Kapitel OAuth beschrieben, während für die Stud.IP-Session-Autorisierung lediglich ein Cookie namens Seminar_Session und der gültigen Session-Id des entsprechenden Nutzers für den Request gesetzt werden muss. Somit wird die API bspw. auch für AJAX-Aufrufe interessant.

Aufbau der Rückgabe

Die API unterscheidet zwei verschiedene Modi, die den Aufbau der Rückgabe steuern.

Routen nutzen sich untereinander, um Informationen abzurufen. Ist der Zugriff auf ein davon untersagt, schlägt die gesamte Anfrage fehl.

Rückgabeformate

Die Rückgabe kann entweder als JSON, als serialisiertes PHP oder als XML erfolgen und ist immer als UTF-8 kodiert. Das jeweilige Format wird entweder über den Content-Type-HTTP-Header der Anfrage oder durch die Dateiendung der angeforderten Ressource bestimmt. Ein Zugriff auf /api/news.json liefert die Ankündigungen eines Nutzers im JSON-Format zurück, während /api/news.xml die Ankündigungen im XML-Format zurückgeben würde.

Die Beispiele in dieser Dokumentation decken vorläufig nur die zurückgegebenen JSON-Daten ab, da dies das bevorzugte Format ist.

Methoden, die keine Rückgabe erfordern, antworten im Erfolgsfall in aller Regel mit einem HTTP-Status-Code von 200 - Success. Bei Fehlern ist zusätzlich zu einem Status von 4xx auch der Body der Antwort zu beachten. Dort findet sich eine genauere Beschreibung des Fehlers.

Die Routen im Detail

/oauth - OAuth-Autorisierung

Die Autorisierung erfolgt mittels sogenanntem 3-legged OAuth. Im Gegensatz zum 2-legged OAuth, bei dem sich nur die Applikation beim Server autorisiert, ist beim 3-legged OAuth zusätzlich eine Autorisierung des zugreifenden Nutzers erforderlich.

Die Autorisierung des Nutzers erfolgt dabei vollkommen transparent, da die Autorisierung auf Seiten des autorisierenden Servers erfolgt. Die zur Autorisierung erforderlichen Nutzerdaten verlassen somit niemals das System.

Der komplette Workflow von OAuth findest sich unter http://oauth.net/core/diagram.png.

Weitere Details zu OAuth finden sie auf http://oauth.net.

Die 3 Endpunkte der Autorisierung sind die folgenden:

  1. /oauth/request_token
    Fragt einen temporären, unautorisierten Token beim Server ab.
  2. /oauth/authorize
    In diesem Schritt wird dem Benutzer ein Dialog angezeigt, in dem er zustimmen muss, den Token aus Schritt 1 zu autorisieren.
  3. /oauth/access_token
    Holt ein dauerhaftes, autorisiertes Token im Austausch gegen das in Schritt 2 autorierte Token.

Für die Autorisierung werden weiterhin die beiden Schlüssel consumer_key und consumer_secret benötigt, welche vom Betreiber der jeweiligen Stud.IP-Instanz vergeben werden.

/api/discovery - Informationen über die API

GET

Liefert Informationen über die in der Instanz unterstützten Routen, ihrer Methoden und den jeweiligen Zugriffsberechtigungen zurück.

{
    "routes": {
        "/activities(/:range_id)": {
            "get": true
        },
        "/courses": {
            "get": false
        },
        "/courses/:course_id": {
            "get": false
        },
        "/courses/semester": {
            "get": false
        },
        "/courses/semester/:semester_id": {
            "get": false
        },
        "/discovery": {
            "get": true
        },
        "/documents/:document_id": {
            "get": true
        },
        "/documents/:document_id/download": {
            "get": true
        },
        "/documents/:range_id/folder(/:folder_id)": {
            "get": true
        },
        "/messages": {
            "post": false
        },
        "/messages/:box": {
            "get": true,
            "post": false
        },
        "/messages/:box/:folder": {
            "get": true
        },
        "/messages/:message_id": {
            "get": true,
            "delete": true
        },
        "/messages/:message_id/move/:folder": {
            "post": true
        },
        "/messages/:message_id/read": {
            "post": true
        },
        "/news(/range/:range_id)": {
            "get": true,
            "post": true
        },
        "/news/:news_id": {
            "get": true,
            "post": false,
            "delete": true
        },
        "/semesters": {
            "get": true
        },
        "/semesters/:semester_id": {
            "get": true
        },
        "/studip/settings": {
            "get": true
        },
        "/user(/:user_id)": {
            "get": true
        }
    }
}

In dem obigen Beispiel sind alle Routen erlaubt bis auf /api/courses, also der Zugriff auf die Veranstaltungen.

/api/courses - Belegte Veranstaltungen

GET

Liefert die Veranstaltungen zurück, in die der Nutzer eingetragen ist.

{
    "courses":[
        {
            "course_id": "25fc42f45366af2b6ab76c6763d6d4b6",
            "start_time": "1322694000",
            "duration_time": "0",
            "title": "Stud.IP Basics",
            "subtitle": "",
            "description": "An introduction to Stud.IP",
            "location": "A1 2-345",
            "type": "1",
            "semester_id": "b0f900555733fe1cdcd60f1568be32b3",
            "teachers": [
                "ae7a77dff6aa85f82c40cc311600ceb4"
            ],
            "tutors": [
                "757af09136a9f8a00280e598ac9814bc",
                "96f1172ccc378b7710260413d3db8c8f"
            ],
            "students": [
                "e7eaafc2245b04c608d2ce17b8267875",
                "205f3efb7997a0fc9755da2b535038da",
                "7e81ec247c151c02ffd479511e24cc03"
            ],
            "modules": {
                "calendar": false,
                "chat": true,
                "documents": true,
                "documents_folder_permissions": false,
                "elearning_interface": false,
                "forum": true,
                "literature": false,
                "participants": true,
                "personal": false,
                "schedule": false,
                "scm": true,
                "wiki": true
            }
        },
        {
            "course_id": "6909da6f6a8f864ad50458b256722388",
            "start_time": "1335250673",
            "duration_time": "0",
            "title": "Studiengruppen-Dummy",
            "subtitle": "",
            "description": "Hier aussagekr\u00e4ftige Beschreibung eingegeben.",
            "location": "",
            "type": "99",
            "semester_id": "55e872dbcb8a1c79bfb088dfb2da0556",
            "modules": {
                "chat": false,
                "calendar": false,
                "documents": false,
                "documents_folder_permissions": false,
                "elearning_interface": false,
                "forum": false,
                "literature": false,
                "participants": true,
                "personal": false,
                "schedule": false,
                "scm": false,
                "wiki": true
            },
            "teachers": [],
            "tutors": [],
            "students": []
        }
    ]
}

/api/courses/:course_id - Daten einer Veranstaltung

GET

Liefert die Daten der angegebenen Veranstaltung zurück.

{
    "course": {
        "course_id": "25fc42f45366af2b6ab76c6763d6d4b6",
        "start_time": "1322694000",
        "duration_time": "0",
        "title": "Stud.IP Basics",
        "subtitle": "",
        "description": "An introduction to Stud.IP",
        "location": "A1 2-345",
        "type": "1",
        "semester_id": "b0f900555733fe1cdcd60f1568be32b3",
        "teachers": [
            "ae7a77dff6aa85f82c40cc311600ceb4"
        ],
        "tutors": [
            "757af09136a9f8a00280e598ac9814bc",
            "96f1172ccc378b7710260413d3db8c8f"
        ],
        "students": [
            "e7eaafc2245b04c608d2ce17b8267875",
            "205f3efb7997a0fc9755da2b535038da",
            "7e81ec247c151c02ffd479511e24cc03"
        ],
        "modules": {
            "calendar": false,
            "chat": true,
            "documents": true,
            "documents_folder_permissions": false,
            "elearning_interface": false,
            "forum": true,
            "literature": false,
            "participants": true,
            "personal": false,
            "schedule": false,
            "scm": true,
            "wiki": true
        }
    }
}

/api/courses/:course_id/members - Teilnehmer einer Veranstaltung

GET

Liefert die eingetragenen Nutzer einer Veranstaltung zurück.

{
  "members": {
    "students": [
      "e7eaafc2245b04c608d2ce17b8267875",
      "205f3efb7997a0fc9755da2b535038da",
      "7e81ec247c151c02ffd479511e24cc03"
    ],
    "tutors": [],
    "teachers": ["ae7a77dff6aa85f82c40cc311600ceb4"]
  }
}

/api/courses/:course_id/members/:status - Bestimmte Teilnehmer einer Veranstaltung

GET

Liefert die eingetragenen Nutzer mit dem angegebenen Status einer Veranstaltung zurück.

{
    "members": [
        "e7eaafc2245b04c608d2ce17b8267875",
        "205f3efb7997a0fc9755da2b535038da",
        "7e81ec247c151c02ffd479511e24cc03"
    ]
}

/api/courses/:course_id/wiki - Alle Wikiseiten einer Veranstaltung

GET

Liefert alle Schlüsselwörter der Wikiseiten einer Veranstaltung zurück.

{
  "keywords":[
    "Listen",
    "Übersichten",
    "WikiWikiWeb"
  ]
}

/api/courses/:course_id/wiki/:page(/:version) - Eine Wikiseite einer Veranstaltung (in einer bestimmten Version)

GET

Liefert eine bestimmte Wikiseite einer Veranstaltung (in einer bestimmten Version) zurück.

{
  "page":{
    "range_id":"25fc42f45366af2b6ab76c6763d6d4b6",
    "user_id":"76ed43ef286fb55cf9e41beadb484a9f",
    "keyword":"WikiWikiWeb",
    "body":"<a class=\"link-extern\" href=\"http:\/\/google.de\" target=\"_blank\">foo<\/a><br><a href=\"\/wiki.php?keyword=andere+seite&amp;view=editnew\">andere seite(?)<\/a>",
    "chdate":"1329120139",
    "version":"5",
    "body_original":"[foo]http:\/\/google.de\r\n[[andere seite]]"
  }
}

/api/courses/semester - Belegte Semester

GET

Liefert alle Semester zurück, in denen der Nutzer in mindestens eine Veranstaltung eingetragen ist.

{
    "semesters":[
        {
            "semester_id": "b0f900555733fe1cdcd60f1568be32b3",
            "title": "WS 2011\/2012",
            "description": "",
            "begin": "1322694000",
            "end": "1333231199",
            "seminars_begin": "1322694000",
            "seminars_end": "1330556399"
        },
        {
            "semester_id": "55e872dbcb8a1c79bfb088dfb2da0556",
            "title": "SS 2012",
            "description": "",
            "begin": "1333231200",
            "end": "1349042399",
            "seminars_begin": "1334440800",
            "seminars_end": "1345154399"
        }
    ]
}

/api/courses/semester/:semester_id - Belegte Veranstaltungen eines Semesters

GET

Liefert die Veranstaltungen zurück, in die der Nutzer in dem angegebenen Semester eingetragen ist.

{
    "courses":[
        {
            "course_id": "25fc42f45366af2b6ab76c6763d6d4b6",
            "start_time": "1322694000",
            "duration_time": "0",
            "title": "Stud.IP Basics",
            "subtitle": "",
            "description": "An introduction to Stud.IP",
            "location": "A1 2-345",
            "type": "1",
            "semester_id": "b0f900555733fe1cdcd60f1568be32b3",
            "teachers": [
                "ae7a77dff6aa85f82c40cc311600ceb4"
            ],
            "tutors": [
                "757af09136a9f8a00280e598ac9814bc",
                "96f1172ccc378b7710260413d3db8c8f"
            ],
            "students": [
                "e7eaafc2245b04c608d2ce17b8267875",
                "205f3efb7997a0fc9755da2b535038da",
                "7e81ec247c151c02ffd479511e24cc03"
            ],
            "modules": {
                "calendar": false,
                "chat": true,
                "documents": true,
                "documents_folder_permissions": false,
                "elearning_interface": false,
                "forum": true,
                "literature": false,
                "participants": true,
                "personal": false,
                "schedule": false,
                "scm": true,
                "wiki": true
            }
        },
        {
            "course_id": "6909da6f6a8f864ad50458b256722388",
            "start_time": "1335250673",
            "duration_time": "0",
            "title": "Studiengruppen-Dummy",
            "subtitle": "",
            "description": "Hier aussagekr\u00e4ftige Beschreibung eingegeben.",
            "location": "",
            "type": "99",
            "semester_id": "55e872dbcb8a1c79bfb088dfb2da0556",
            "modules": {
                "chat": false,
                "calendar": false,
                "documents": false,
                "documents_folder_permissions": false,
                "elearning_interface": false,
                "forum": false,
                "literature": false,
                "participants": true,
                "personal": false,
                "schedule": false,
                "scm": false,
                "wiki": true
            },
            "teachers": [],
            "tutors": [],
            "students": []
        }
    ]
}

/api/courses/:course_id/wiki - Wiki-Seiten einer Veranstaltung

GET

Liefert alle im Wiki vorhandenen Seiten zurück.

{
  "keywords":[
    "Bar",
    "Foo",
    "LoremIpsum",
    "WikiWikiWeb"
  ]
}

/api/courses/:course_id/wiki/:page(/:version) - Einzelne Wiki-Seite einer Veranstaltung

GET

Liefert die Daten einer einzelnen Seite (in einer bestimmten Version) zurück.

{
  "page":{
    "user_id":"c2fd13b5fc964d2a75afcf269c1bac17",
    "keyword":"LoremIpsum",
    "body":"Test<br><br>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.",
    "chdate":"1355605353",
    "version":"2",
    "body_original":"Test\r\n\r\nLorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.",
    "course_id":"834499e2b8a2cd71637890e5de31cba3"
  }
}

/api/documents/:document_id - Daten eines Dokuments

GET

Liefert die Daten eines Dokuments zurück.

{
    "document": {
        "document_id": "9232571de085fd5b41f2b12768abd115",
        "user_id": "e7eaafc2245b04c608d2ce17b8267875",
        "name": "iPad calendar screenshot: List view",
        "description": "Foo bar",
        "mkdate": "1336841128",
        "chdate": "1336841128",
        "filename": "calendar-list.png",
        "filesize": "209695",
        "downloads": "1",
        "mime_type": "image/png",
        "icon": "http://studip.example.org/assets/images/icons/16/blue/file-image.png",
        "protected": false
    }
}

/api/documents/:document_id/download - Download eines Dokuments

GET

Liefert das Dokument als solches zurück.

/api/documents/:range_id/folder/<:folder_id> - Dateien eines Ordners

GET

Liefert die Dateien und Ordner eines angegebenen Ordners einer Veranstaltung zurück.

{
    "folders": [
        {
            "folder_id": "d36c905c26265fda018e29b02224b635",
            "user_id": "76ed43ef286fb55cf9e41beadb484a9f",
            "name": "Allgemeiner Dateiordner",
            "description": "Ablage f\u00fcr allgemeine Ordner und Dokumente der Veranstaltung",
            "mkdate": "1326410202",
            "chdate": "1326410202",
            "permissions": {
                "visible": true,
                "writeable": true,
                "readable": true,
                "extendable": false
            }
        },
        {
            "folder_id": "842bf5a9fd34a5f7037b1a0c33def067",
            "user_id": "76ed43ef286fb55cf9e41beadb484a9f",
            "name": "28.11.11, 10:00 - 12:00, Ohne Titel (Thema gel\u00f6scht)",
            "description": "Dateiordner bezieht sich auf ein nicht mehr vorhandenes Thema.",
            "mkdate": "1334137141",
            "chdate": "1334137141",
            "permissions": {
                "visible": true,
                "writeable": true,
                "readable": true,
                "extendable": true
            }
        },
        {
            "folder_id": "3b5111cc46c90f103be55373bf246d41",
            "user_id": "76ed43ef286fb55cf9e41beadb484a9f",
            "name": "Dateiordner der Gruppe: AutorInnen",
            "description": "Ablage f\u00fcr Ordner und Dokumente dieser Gruppe",
            "mkdate": "1335182781",
            "chdate": "1335182781",
            "permissions": {
                "visible": true,
                "writeable": true,
                "readable": true,
                "extendable": false
            }
        }
    ],
    "documents": [
        {
            "document_id": "866c886cbbfa4c3e90d5f5ac6e8aa5c0",
            "user_id": "76ed43ef286fb55cf9e41beadb484a9f",
            "name": "Sprechstundenplugin",
            "description": "Plugin f\u00fcr Sprechstundentermine",
            "mkdate": "1329120010",
            "chdate": "1329120010",
            "filename": "sprechstundenplugin_1.6.3.zip",
            "filesize": "23031",
            "downloads": "0",
            "mime_type": "application/zip",
            "icon": "http://studip.example.org/assets/images/icons/16/blue/file-archive.png",
            "protected": false
        },
        {
            "document_id": "9232571de085fd5b41f2b12768abd115",
            "user_id": "e7eaafc2245b04c608d2ce17b8267875",
            "name": "iPad calendar screenshot: List view",
            "description": "Foo bar",
            "mkdate": "1336841128",
            "chdate": "1336841128",
            "filename": "calendar-list.png",
            "filesize": "209695",
            "downloads": "1",
            "mime_type": "image/png",
            "icon": "http://studip.example.org/assets/images/icons/16/blue/file-image.png",
            "protected": true
        }
    ]
}

Es werden grundsätzlich nur Ordner zurückgegeben, bei denen mindestens eine Berechtigung gesetzt ist, da ein Ordner sonst eh nicht nutzbar ist.

/api/messages - Nachrichten

GET

Liefert die Anzahl gelesener bzw. ungelesener Nachrichten im Posteingang zurück.

{
  "read":16,
  "unread":3
}
POST

Schreibt eine neue Nachricht.

Parameter:

user_id
Id des bzw. der Empfänger (es kann ein String oder auch ein Array für mehrere Empfänger übergeben werden)
subject
Der Betreff der Nachricht
message
Die eigentliche Nachricht

HTTP-Status der Rückgabe:

/api/messages/:box - Nachrichtenordner auslesen

GET

Liefert die vorhandenen Nachrichtenordner des autorisierten Nutzers zurück. Der Parameter bestimmt je nach Wert, auf welchen Bereich zugegriffen werden soll:

{
    "folders":[
        "Posteingang",
        "Archiv"
    ]
}

/api/messages/:message_id - Daten einer Nachricht

GET

Liefert die Daten der angegebenen Nachricht zurück.

{
    "message": {
        "message_id": "4fb019436f6270a8a72a7e1aff03ef0d",
        "sender_id": "ae7a77dff6aa85f82c40cc311600ceb4",
        "receiver_id": "ae7a77dff6aa85f82c40cc311600ceb4",
        "subject": "Sie wurden in eine Studiengruppe eingeladen",
        "message": "John Doe m&ouml;chte Sie auf die Studiengruppe Studiengruppen-Dummy aufmerksam machen. Klicken Sie auf den untenstehenden Link, um direkt zur Studiengruppe zu gelangen.<br><br> <a class=\"link-intern\" href=\"http://studip.example.org/dispatch.php/course/studygroup/details/6909da6f6a8f864ad50458b256722388\">http://studip.example.org/dispatch.php/course/studygroup/details/6909da6f6a8f864ad50458b256722388</a>",
        "mkdate": "1335250648",
        "priority": "normal",
        "unread": "0"
    }
}
DELETE

Löscht die übergebene Nachricht.

HTTP-Status der Rückgabe:

/api/messages/:message_id/read - Nachricht als gelesen markieren

PUT

Markiert die angegebene Nachricht als gelesen.

HTTP-Status der Rückgabe:

/api/messages/read - Alle Nachrichten als gelesen markieren

PUT

Markiert alle Nachrichten als gelesen.

HTTP-Status der Rückgabe:

/api/messages/:box/:folder - Nachrichten eines Ordners auslesen

GET

Liefert die vorhandenen Nachrichten eines Ordners des autorisierten Nutzers zurück.

{
    "messages": [
        {
            "message_id": "4fb019436f6270a8a72a7e1aff03ef0d",
            "sender_id": "ae7a77dff6aa85f82c40cc311600ceb4",
            "receiver_id": "ae7a77dff6aa85f82c40cc311600ceb4",
            "subject": "Sie wurden in eine Studiengruppe eingeladen",
            "message": "John Doe m&ouml;chte Sie auf die Studiengruppe Studiengruppen-Dummy aufmerksam machen. Klicken Sie auf den untenstehenden Link, um direkt zur Studiengruppe zu gelangen.<br><br> <a class=\"link-intern\" href=\"http://studip.example.org/dispatch.php/course/studygroup/details/6909da6f6a8f864ad50458b256722388\">http://studip.example.org/dispatch.php/course/studygroup/details/6909da6f6a8f864ad50458b256722388</a>",
            "mkdate": "1335250648",
            "priority": "normal",
            "unread": "0"
        },
        {
            "message_id": "7f0a55cab501e936342c4a32ae0d201e",
            "sender_id": "____%system%____",
            "receiver_id": "____%system%____",
            "subject": "Systemnachricht: Vote/Test ge\u00e4ndert",
            "message": "An Ihrem Test &quot;A&quot; wurden von dem Administrator oder der Administratorin John Doe &Auml;nderungen vorgenommen.<br> <br> -- <br>Diese Nachricht wurde automatisch vom Stud.IP-System generiert. Sie k&ouml;nnen darauf nicht antworten.",
            "mkdate": "1334072556",
            "priority": "normal",
            "unread": "0"
        },
        {
            "message_id": "04cb135a12453333d264f7dcddfffa22",
            "sender_id": "____%system%____",
            "receiver_id": "____%system%____",
            "subject": "Systemnachricht: Abonnement aufgehoben",
            "message": "Ihr Abonnement der Veranstaltung <b>Test-Veranstaltung</b> wurde aufgehoben, da die Veranstaltung mit einem teilnahmebeschr&auml;nkten Anmeldeverfahren versehen wurde. <br>Wenn Sie einen Platz in der Veranstaltung bekommen wollen, melden Sie sich bitte erneut an.<br> <br> -- <br>Diese Nachricht wurde automatisch vom Stud.IP-System generiert. Sie k&ouml;nnen darauf nicht antworten.",
            "mkdate": "1332755326",
            "priority": "normal",
            "unread": "0"
        },
        {
            "message_id": "a4202f26cab3c381b9f138b47192de00",
            "sender_id": "____%system%____",
            "receiver_id": "____%system%____",
            "subject": "Systemnachricht: Profil ver\u00e4ndert",
            "message": "Ihre pers&ouml;nliche Seite wurde von einer Administratorin oder einem Administrator ver&auml;ndert.<br> Folgende Ver&auml;nderungen wurden vorgenommen:<br> <br>Private Daten wurden ge&auml;ndert.<br>Daten im Lebenslauf u.a. wurden ge&auml;ndert.<br>Diese Nachricht wurde automatisch vom Stud.IP-System generiert. Sie k&ouml;nnen darauf nicht antworten.",
            "mkdate": "1332256958",
            "priority": "normal",
            "unread": "1"
        },
        {
            "message_id": "661f318cced743df38964fccace74336",
            "sender_id": "76ed43ef286fb55cf9e41beadb484a9f",
            "receiver_id": "76ed43ef286fb55cf9e41beadb484a9f",
            "subject": "test",
            "message": "<img src=\"http://studip.example.org/pictures/smile/wink3.gif\" alt=\"wink3\" title=\"wink3\" width=\"\" height=\"\"> <img src=\"http://studip.example.org/pictures/smile/wink3.gif\" alt=\"wink3\" title=\"wink3\" width=\"\" height=\"\"> <img src=\"http://studip.example.org/pictures/smile/wink3.gif\" alt=\"wink3\" title=\"wink3\" width=\"\" height=\"\">",
            "mkdate": "1327112995",
            "priority": "normal",
            "unread": "1"
        },
        {
            "message_id": "cb0f986b69792c2cfd40ff2529c3155a",
            "sender_id": "76ed43ef286fb55cf9e41beadb484a9f",
            "receiver_id": "76ed43ef286fb55cf9e41beadb484a9f",
            "subject": "Test",
            "message": "<img src=\"http://studip.example.org/pictures/smile/smile.gif\" alt=\"smile\" title=\"smile\" width=\"\" height=\"\">",
            "mkdate": "1326539373",
            "priority": "normal",
            "unread": "0"
        }
    ]
}

/api/messages/:message_id/move/:folder - Nachricht in Ordner verschieben

PUT

Verschiebt die angegebene Nachricht in den angegebenen Ordner.

HTTP-Status der Rückgabe:

/api/news - Ankündigungen des Nutzers

GET

Liefert die Ankündigungen des autorisierten Nutzers zurück.

{
    "news": [
        {
            "news_id": "7516d73adb81ca271c88986bafd14fd7",
            "topic": "Message from outer space spells \"foo\" - scientists left puzzled",
            "body": "Lorem ipsum dolor...",
            "date": "1336773600",
            "user_id": "76ed43ef286fb55cf9e41beadb484a9f",
            "expire": "691199",
            "allow_comments": "1",
            "chdate": "1336835422",
            "chdate_uid": "",
            "mkdate": "1336835409",
            "body_original": "Lorem ipsum dolor..."
        }
    ]
}
POST

Erzeugt eine Ankündigung für den autorisierten Nutzer.

Parameter:

title
Titel der Ankündigung
body
Inhalt der Ankündigung
expire (optional, Standard = 1029600 = 2 Wochen)
Laufzeit der Ankündigung in Sekunden.
allow_comments (optional, Standard = 0)
Kommentare erlauben

HTTP-Status der Rückgabe:

/api/news/:news_id - Daten einer Ankündigung

GET

Liefert die Daten der angegebenen Ankündigung zurück.

{
    "news":{
        "news_id": "7516d73adb81ca271c88986bafd14fd7",
        "topic": "Message from outer space spells \"foo\" - scientists left puzzled",
        "body": "Lorem ipsum dolor...",
        "date": "1336773600",
        "user_id": "76ed43ef286fb55cf9e41beadb484a9f",
        "expire": "691199",
        "allow_comments": "1",
        "chdate": "1336835422",
        "chdate_uid": "",
        "mkdate": "1336835409",
        "body_original": "Lorem ipsum dolor..."
    }
}
PUT

Verändert die Daten einer Ankündigung.

Parameter:

title (optional)
Titel der Ankündigung
body (optional)
Inhalt der Ankündigung
expire (optional)
Laufzeit der Ankündigung in Sekunden.
allow_comments (optional)
Kommentare erlauben

HTTP-Status der Rückgabe:

DELETE

Löscht die angegebene Ankündigung.

HTTP-Status der Rückgabe:

/api/news/range/:range_id - Ankündigungen einer Range

GET

Liefert die Ankündigungen der angegebenen Range zurück. Eine Range kann hierbei die Id eines Nutzers, einer Veranstaltung/Studiengruppe, eines Instituts oder studip für globale Ankündigungen sein.

{
    "news":{
        "news_id": "7516d73adb81ca271c88986bafd14fd7",
        "topic": "Message from outer space spells \"foo\" - scientists left puzzled",
        "body": "Lorem ipsum dolor...",
        "date": "1336773600",
        "user_id": "76ed43ef286fb55cf9e41beadb484a9f",
        "expire": "691199",
        "allow_comments": "1",
        "chdate": "1336835422",
        "chdate_uid": "",
        "mkdate": "1336835409",
        "body_original": "Lorem ipsum dolor..."
    }
}
POST

Erzeugt eine Ankündigung für die angegebene Range.

Parameter:

title
Titel der Ankündigung
body
Inhalt der Ankündigung
expire (optional, Standard = 1029600 = 2 Wochen)
Laufzeit der Ankündigung in Sekunden.
allow_comments (optional, Standard = 0)
Kommentare erlauben

HTTP-Status der Rückgabe:

/api/news/:news_id/comments - Kommentare einer Ankündigung

GET

Liest alle Kommentare zu einer Ankündigung aus.

HTTP-Status der Rückgabe:

{
    "comments": [
        {
            "comment_id": "c81aa61d22ea203dba9da5b8d69bef39",
            "comment": "foorst!!!1!",
            "mkdate": "1336835458",
            "chdate": "1336835458",
            "user_id": "76ed43ef286fb55cf9e41beadb484a9f",
            "comment_original": "foorst!!!1!"
        }
    ]
}
POST

Fügt der Ankündigung einen neuen Kommentar hinzu.

Parameter:

content
Inhalt des Kommentars

HTTP-Status der Rückgabe:

/api/news/:news_id/comments/:comment_id - Kommentar einer Ankündigung

GET

Liefert die Daten des Kommentars zurück.

{
    "comment": {
        "comment_id": "c81aa61d22ea203dba9da5b8d69bef39",
        "comment": "foorst!!!1!",
        "mkdate": "1336835458",
        "chdate": "1336835458",
        "user_id": "76ed43ef286fb55cf9e41beadb484a9f",
        "comment_original": "foorst!!!1!"
    }
}
DELETE

Löscht den angegebenen Kommentar.

HTTP-Status der Rückgabe:

/api/semesters - Alle Semester

GET

Liefert alle bekannten Semester der Installation zurück.

{
    "semesters": [
        {
            "semester_id": "eb828ebb81bb946fac4108521a3b4697",
            "title": "WS 2010\/11",
            "description": "",
            "begin": "1285884000",
            "end": "1301608799",
            "seminars_begin": "1287439200",
            "seminars_end": "1296946799"
        },
        {
            "semester_id": "f2b4fdf5ac59a9cb57dd73c4d3bbb651",
            "title": "SS 2011",
            "description": "",
            "begin": "1301608800",
            "end": "1317419999",
            "seminars_begin": "1302040800",
            "seminars_end": "1310248799"
        },
        {
            "semester_id": "b0f900555733fe1cdcd60f1568be32b3",
            "title": "WS 2011\/2012",
            "description": "",
            "begin": "1322694000",
            "end": "1333231199",
            "seminars_begin": "1322694000",
            "seminars_end": "1330556399"
        },
        {
            "semester_id": "55e872dbcb8a1c79bfb088dfb2da0556",
            "title": "SS 2012",
            "description": "",
            "begin": "1333231200",
            "end": "1349042399",
            "seminars_begin": "1334440800",
            "seminars_end": "1345154399"
        }
    ]
}

/api/semesters/:semester_id - Daten eines Semesters

GET

Liefert die Daten des angegebenen Semesters zurück.

{
    "semester": {
        "semester_id": "55e872dbcb8a1c79bfb088dfb2da0556",
        "title": "SS 2012",
        "description": "",
        "begin": "1333231200",
        "end": "1349042399",
        "seminars_begin": "1334440800",
        "seminars_end": "1345154399"
    }
}

/api/studip/settings - Globale Einstellungen

GET

Liefert lokale Einstellungswerte Stud.IP-interner Konfigurationen zurück.
Diese Werte dienen dazu, die Daten verschiedener Ressourcen an den Standort angepasst interpretieren zu können.

{
  "ALLOW_CHANGE_USERNAME":true,
  "ALLOW_CHANGE_EMAIL":true,
  "ALLOW_CHANGE_NAME":true,
  "ALLOW_CHANGE_TITLE":true,
  "INST_TYPE":{
    "1": {"name":"Einrichtung"},
    "2": {"name":"Zentrum"},
    "3": {"name":"Lehrstuhl"},
    "4": {"name":"Abteilung"},
    "5": {"name":"Fachbereich"},
    "6": {"name":"Seminar"},
    "7": {"name":"Fakult\u00e4t"},
    "8": {"name":"Arbeitsgruppe"}
  },
  "SEM_TYPE":{
    "1":{
      "name":"Vorlesung",
      "class":"1"
    },
    "2":{
      "name":"Grundstudium",
      "class":"1"
    },
    "3":{
      "name":"Hauptstudium",
      "class":"1"
    },
    "4":{
      "name":"Seminar",
      "class":"1"
    },
    "5":{
      "name":"Praxisveranstaltung",
      "class":"1"
    },
    "6":{
      "name":"Kolloquium",
      "class":"1"
    },
    "7":{
      "name":"Forschungsgruppe",
      "class":"1"
    },
    "8":{
      "name":"Arbeitsgruppe",
      "class":"5"
    },
    "9":{
      "name":"sonstige",
      "class":"1"
    },
    "10":{
      "name":"Forschungsgruppe",
      "class":"2"
    },
    "11":{
      "name":"sonstige",
      "class":"2"
    },
    "12":{
      "name":"Gremiumsveranstaltung",
      "class":"3"
    },
    "13":{
      "name":"sonstige",
      "class":"3"
    },
    "14":{
      "name":"Community-Forum",
      "class":"4"
    },
    "15":{
      "name":"sonstige",
      "class":"4"
    },
    "16":{
      "name":"Praktikum",
      "class":"1"
    },
    "17":{
      "name":"Lehrveranstaltung nach PVO-Lehr I",
      "class":"1"
    },
    "18":{
      "name":"Anleitung zu selbst\u00e4ndigen wissenschaftlichen Arbeiten",
      "class":"1"
    },
    "19":{
      "name":"Sprachkurs",
      "class":"1"
    },
    "20":{
      "name":"Fachdidaktik",
      "class":"1"
    },
    "21":{
      "name":"\u00dcbung",
      "class":"1"
    },
    "22":{
      "name":"Proseminar",
      "class":"1"
    },
    "23":{
      "name":"Oberseminar",
      "class":"1"
    },
    "24":{
      "name":"Arbeitsgemeinschaft",
      "class":"1"
    },
    "25":{
      "name":"Vorlesung",
      "class":"6"
    },
    "26":{
      "name":"Grundstudium",
      "class":"6"
    },
    "27":{
      "name":"Hauptstudium",
      "class":"6"
    },
    "28":{
      "name":"Seminar",
      "class":"6"
    },
    "29":{
      "name":"Praxisveranstaltung",
      "class":"6"
    },
    "30":{
      "name":"Kolloquium",
      "class":"6"
    },
    "31":{
      "name":"Forschungsgruppe",
      "class":"6"
    },
    "99":{
      "name":"Studiengruppe",
      "class":"99"
    }
  },
  "SEM_CLASS":{
    "1":{
      "id":"1",
      "name":"Lehre",
      "compact_mode":"0",
      "workgroup_mode":"0",
      "only_inst_user":"1",
      "turnus_default":"0",
      "default_read_level":"1",
      "default_write_level":"1",
      "bereiche":"1",
      "show_browse":"1",
      "write_access_nobody":"0",
      "topic_create_autor":"1",
      "visible":"1",
      "course_creation_forbidden":"0",
      "overview":"CoreOverview",
      "forum":"CoreForum",
      "admin":"CoreAdmin",
      "documents":"CoreDocuments",
      "schedule":"CoreSchedule",
      "participants":"CoreParticipants",
      "literature":"CoreLiterature",
      "chat":"1",
      "scm":"CoreScm",
      "wiki":"CoreWiki",
      "resources":null,
      "calendar":null,
      "elearning_interface":null,
      "modules":{
        "CoreOverview":{
          "activated":1,
          "sticky":1
        },
        "CoreAdmin":{
          "activated":1,
          "sticky":1
        }
      },
      "description":"Hier finden Sie alle in Stud.IP registrierten Lehrveranstaltungen",
      "create_description":"",
      "studygroup_mode":"0",
      "title_dozent":null,
      "title_dozent_plural":null,
      "title_tutor":null,
      "title_tutor_plural":null,
      "title_autor":null,
      "title_autor_plural":null,
      "mkdate":"1340177014",
      "chdate":"1340177014"
    },
    "2":{
      "id":"2",
      "name":"Forschung",
      "compact_mode":"1",
      "workgroup_mode":"1",
      "only_inst_user":"1",
      "turnus_default":"-1",
      "default_read_level":"2",
      "default_write_level":"2",
      "bereiche":"1",
      "show_browse":"1",
      "write_access_nobody":"0",
      "topic_create_autor":"1",
      "visible":"1",
      "course_creation_forbidden":"0",
      "overview":"CoreOverview",
      "forum":"CoreForum",
      "admin":"CoreAdmin",
      "documents":"CoreDocuments",
      "schedule":"CoreSchedule",
      "participants":"CoreParticipants",
      "literature":"CoreLiterature",
      "chat":"1",
      "scm":"CoreScm",
      "wiki":"CoreWiki",
      "resources":null,
      "calendar":null,
      "elearning_interface":null,
      "modules":{
        "CoreOverview":{
          "activated":1,
          "sticky":1
        },
        "CoreAdmin":{
          "activated":1,
          "sticky":1
        }
      },
      "description":"Hier finden Sie virtuelle Veranstaltungen zum Thema Forschung an der Universit&auml;t",
      "create_description":"",
      "studygroup_mode":"0",
      "title_dozent":"Papst",
      "title_dozent_plural":"P\u00e4pste",
      "title_tutor":"Kardinal",
      "title_tutor_plural":"Kardin\u00e4le",
      "title_autor":"Scherge",
      "title_autor_plural":"Schergen",
      "mkdate":"1340177014",
      "chdate":"1340177014"
    },
    "3":{
      "id":"3",
      "name":"Organisation",
      "compact_mode":"1",
      "workgroup_mode":"1",
      "only_inst_user":"0",
      "turnus_default":"-1",
      "default_read_level":"2",
      "default_write_level":"2",
      "bereiche":"1",
      "show_browse":"1",
      "write_access_nobody":"1",
      "topic_create_autor":"1",
      "visible":"1",
      "course_creation_forbidden":"0",
      "overview":"CoreOverview",
      "forum":"CoreForum",
      "admin":"CoreAdmin",
      "documents":"CoreDocuments",
      "schedule":"CoreSchedule",
      "participants":"CoreParticipants",
      "literature":"CoreLiterature",
      "chat":"1",
      "scm":"CoreScm",
      "wiki":"CoreWiki",
      "resources":null,
      "calendar":null,
      "elearning_interface":null,
      "modules":{
        "CoreOverview":{
          "activated":1,
          "sticky":1
        },
        "CoreAdmin":{
          "activated":1,
          "sticky":1
        }
      },
      "description":"Hier finden Sie virtuelle Veranstaltungen zu verschiedenen Gremien an der Universit&auml;t",
      "create_description":"",
      "studygroup_mode":"0",
      "title_dozent":null,
      "title_dozent_plural":null,
      "title_tutor":null,
      "title_tutor_plural":null,
      "title_autor":null,
      "title_autor_plural":null,
      "mkdate":"1340177014",
      "chdate":"1340177014"
    },
    "4":{
      "id":"4",
      "name":"Community",
      "compact_mode":"1",
      "workgroup_mode":"0",
      "only_inst_user":"0",
      "turnus_default":"-1",
      "default_read_level":"0",
      "default_write_level":"0",
      "bereiche":"1",
      "show_browse":"0",
      "write_access_nobody":"1",
      "topic_create_autor":"0",
      "visible":"1",
      "course_creation_forbidden":"0",
      "overview":"CoreOverview",
      "forum":"CoreForum",
      "admin":"CoreAdmin",
      "documents":"CoreDocuments",
      "schedule":"CoreSchedule",
      "participants":"CoreParticipants",
      "literature":"CoreLiterature",
      "chat":"1",
      "scm":"CoreScm",
      "wiki":"CoreWiki",
      "resources":null,
      "calendar":null,
      "elearning_interface":null,
      "modules":{
        "CoreOverview":{
          "activated":1,
          "sticky":1
        },
        "CoreAdmin":{
          "activated":1,
          "sticky":1
        }
      },
      "description":"Hier finden Sie virtuelle Veranstaltungen zu unterschiedlichen Themen",
      "create_description":"",
      "studygroup_mode":"0",
      "title_dozent":null,
      "title_dozent_plural":null,
      "title_tutor":null,
      "title_tutor_plural":null,
      "title_autor":null,
      "title_autor_plural":null,
      "mkdate":"1340177014",
      "chdate":"1340177014"
    },
    "5":{
      "id":"5",
      "name":"Arbeitsgruppen",
      "compact_mode":"0",
      "workgroup_mode":"0",
      "only_inst_user":"1",
      "turnus_default":"1",
      "default_read_level":"1",
      "default_write_level":"1",
      "bereiche":"1",
      "show_browse":"0",
      "write_access_nobody":"0",
      "topic_create_autor":"1",
      "visible":"1",
      "course_creation_forbidden":"0",
      "overview":"CoreOverview",
      "forum":"CoreForum",
      "admin":"CoreAdmin",
      "documents":"CoreDocuments",
      "schedule":"CoreSchedule",
      "participants":"CoreParticipants",
      "literature":"CoreLiterature",
      "chat":"1",
      "scm":"CoreScm",
      "wiki":"CoreWiki",
      "resources":null,
      "calendar":null,
      "elearning_interface":null,
      "modules":{
        "CoreOverview":{
          "activated":1,
          "sticky":1
        },
        "CoreAdmin":{
          "activated":1,
          "sticky":1
        }
      },
      "description":"Hier finden Sie verschiedene Arbeitsgruppen an der Stud.IP 2.4 &lt;trunk&gt;",
      "create_description":"",
      "studygroup_mode":"0",
      "title_dozent":null,
      "title_dozent_plural":null,
      "title_tutor":null,
      "title_tutor_plural":null,
      "title_autor":null,
      "title_autor_plural":null,
      "mkdate":"1340177014",
      "chdate":"1340177014"
    },
    "6":{
      "id":"6",
      "name":"importierte Kurse",
      "compact_mode":"0",
      "workgroup_mode":"0",
      "only_inst_user":"1",
      "turnus_default":"1",
      "default_read_level":"1",
      "default_write_level":"1",
      "bereiche":"1",
      "show_browse":"0",
      "write_access_nobody":"0",
      "topic_create_autor":"1",
      "visible":"1",
      "course_creation_forbidden":"1",
      "overview":"CoreOverview",
      "forum":"CoreForum",
      "admin":"CoreAdmin",
      "documents":"CoreDocuments",
      "schedule":"CoreSchedule",
      "participants":"CoreParticipants",
      "literature":"CoreLiterature",
      "chat":"1",
      "scm":"CoreScm",
      "wiki":"CoreWiki",
      "resources":null,
      "calendar":null,
      "elearning_interface":null,
      "modules":{
        "CoreOverview":{
          "activated":1,
          "sticky":1
        },
        "CoreAdmin":{
          "activated":1,
          "sticky":1
        }
      },
      "description":"Hier finden Sie importierte Kurse",
      "create_description":"",
      "studygroup_mode":"0",
      "title_dozent":null,
      "title_dozent_plural":null,
      "title_tutor":null,
      "title_tutor_plural":null,
      "title_autor":null,
      "title_autor_plural":null,
      "mkdate":"1340177014",
      "chdate":"1340177014"
    },
    "99":{
      "id":"99",
      "name":"Studiengruppen",
      "compact_mode":"0",
      "workgroup_mode":"0",
      "only_inst_user":"0",
      "turnus_default":"0",
      "default_read_level":"0",
      "default_write_level":"0",
      "bereiche":"0",
      "show_browse":"0",
      "write_access_nobody":"0",
      "topic_create_autor":"1",
      "visible":"0",
      "course_creation_forbidden":"1",
      "overview":"CoreOverview",
      "forum":"CoreForum",
      "admin":"CoreStudygroupAdmin",
      "documents":null,
      "schedule":null,
      "participants":"CoreStudygroupParticipants",
      "literature":"CoreLiterature",
      "chat":"0",
      "scm":"CoreScm",
      "wiki":"CoreWiki",
      "resources":null,
      "calendar":null,
      "elearning_interface":null,
      "modules":{
        "CoreOverview":{
          "activated":1,
          "sticky":1
        },
        "CoreStudygroupAdmin":{
          "activated":1,
          "sticky":1
        },
        "CoreStudygroupParticipants":{
          "activated":1,
          "sticky":1
        }
      },
      "description":"",
      "create_description":"",
      "studygroup_mode":"1",
      "title_dozent":"Gruppengr\u00fcnderIn",
      "title_dozent_plural":"Gruppengr\u00fcnderInnen",
      "title_tutor":"ModeratorIn",
      "title_tutor_plural":"ModeratorInnen",
      "title_autor":"Mitglied",
      "title_autor_plural":"Mitglieder",
      "mkdate":"1340177014",
      "chdate":"1340177014"
    }
  },
  "TERMIN_TYP":{
    "1":{
      "name":"Sitzung",
      "sitzung":1,
      "color":"#2D2C64"
    },
    "2":{
      "name":"Vorbesprechung",
      "sitzung":0,
      "color":"#5C2D64"
    },
    "3":{
      "name":"Klausur",
      "sitzung":0,
      "color":"#526416"
    },
    "4":{
      "name":"Exkursion",
      "sitzung":0,
      "color":"#505064"
    },
    "5":{
      "name":"anderer Termin",
      "sitzung":0,
      "color":"#41643F"
    },
    "6":{
      "name":"Sondersitzung",
      "sitzung":0,
      "color":"#64372C"
    },
    "7":{
      "name":"Vorlesung",
      "sitzung":1,
      "color":"#627C95"
    }
  },
  "PERS_TERMIN_KAT":{
    "1":{
      "name":"Sonstiges",
      "color":"#41643F"
    },
    "2":{
      "name":"Sitzung",
      "color":"#2D2C64"
    },
    "3":{
      "name":"Vorbesprechung",
      "color":"#5C2D64"
    },
    "4":{
      "name":"Klausur",
      "color":"#526416"
    },
    "5":{
      "name":"Exkursion",
      "color":"#505064"
    },
    "6":{
      "name":"Sondersitzung",
      "color":"#64372C"
    },
    "7":{
      "name":"Pr\u00fcfung",
      "color":"#64541E"
    },
    "8":{
      "name":"Telefonat",
      "color":"#48642B"
    },
    "9":{
      "name":"Besprechung",
      "color":"#957C29"
    },
    "10":{
      "name":"Verabredung",
      "color":"#956D42"
    },
    "11":{
      "name":"Geburtstag",
      "color":"#66954F"
    },
    "12":{
      "name":"Familie",
      "color":"#2C5964"
    },
    "13":{
      "name":"Urlaub",
      "color":"#951408"
    },
    "14":{
      "name":"Reise",
      "color":"#18645C"
    },
    "15":{
      "name":"Vorlesung",
      "color":"#627C95"
    }
  },
  "TITLES":{
    "dozent":[
      "DozentIn",
      "DozentInnen"
    ],
    "deputy":[
      "Vertretung",
      "Vertretungen"
    ],
    "tutor":[
      "TutorIn",
      "TutorInnen"
    ],
    "autor":[
      "AutorIn",
      "AutorInnen"
    ],
    "user":[
      "LeserIn",
      "LeserInnen"
    ],
    "accepted":[
      "Vorl\u00e4ufig akzeptierte TeilnehmerIn",
      "Vorl\u00e4ufig akzeptierte TeilnehmerInnen"
    ]
  },
  "UNI_NAME_CLEAN":"Stud.IP 2.4 <trunk>"
}

/api/studip/colors - Farbeinstellungen

GET

Liefert grundlegende Farbeinstellungen zurück.

{
  "colors":{
    "background":"#e1e4e9",
    "dark":"#34578c",
    "light":"#899ab9"
  }
}

/api/user/<:user_id> - Nutzerdaten

GET

Liefert die Daten des Nutzers mit der angegebenen Id zurück. Ist keine Id angegeben, so werden die Daten des autorisierten Nutzers zurückgegeben.

{
    "user": {
        "user_id": "e7eaafc2245b04c608d2ce17b8267875",
        "username": "john@doe",
        "perms": "autor",
        "title_pre": "The One and Only",
        "forename": "John",
        "lastname": "Doe",
        "title_post": ", the 1st",
        "email": "john.doe@example.org",
        "avatar_small": "http://studip.example.org/pictures/user/nobody_small.png",
        "avatar_medium": "http://studip.example.org/pictures/user/nobody_medium.png",
        "avatar_normal": "http://studip.example.org/pictures/user/nobody_normal.png",
        "phone": "+1-555-1234",
        "homepage": "",
        "privadr": ""
    }
}

/api/user/:user_id

DELETE

Löscht einen Nutzer.

HTTP-Status der Rückgabe:

/api/user/:user_id/institutes

GET

Liefert die Einrichtungen zurück, an denen ein Nutzer arbeitet bzw. studiert.

{
  "institutes":{
    "work":[
      {
        "institute_id":"2560f7c7674942a7dce8eeb238e15d93",
        "name":"Test Einrichtung",
        "perms":"dozent",
        "consultation":"Mo 14-18",
        "room":"A-123b",
        "phone":"+49-123-456789",
        "fax":"",
        "street":"",
        "city":"",
        "faculty_name":"Test Fakultät",
        "faculty_street":"Some Street 123a",
        "faculty_city":"54321 Somewhere"
      },
      {
        "institute_id":"f02e2b17bc0e99fc885da6ac4c2532dc",
        "name":"Test Abteilung",
        "perms":"dozent",
        "consultation":"",
        "room":"",
        "phone":"",
        "fax":"",
        "street":"",
        "city":"",
        "faculty_name":"Test Fakultät",
        "faculty_street":"Some Street 123a",
        "faculty_city":"54321 Somewhere"
      }
    ],
    "study":[
      
    ]
  }
}

/api/contacts - Kontakte des Nutzers

GET

Liefert die Kontakte des autorisierten Nutzers zurück.

{
    "contacts":[
        "81964eed5792f1b780f61dd347036136",
        "ae7a77dff6aa85f82c40cc311600ceb4",
        "205f3efb7997a0fc9755da2b535038da",
        "e7eaafc2245b04c608d2ce17b8267875"
    ]
}

/api/contacts/:user_id - Kontakte verwalten

PUT

Fügt den angegebenen Nutzer als Kontakt hinzu.

HTTP-Status der Rückgabe:

DELETE

Löscht einen Nutzer als Kontakt.

/api/contacts/groups - Kontaktgruppen des Nutzers

GET

Liefert alle vorhandenen Kontaktgruppen zurück.

{
    "groups":[
        {
            "group_id":"8188abaed1b8c8776e33a68867831258",
            "name":"Test"
        }
    ]
}
POST

Erzeugt eine neue Kontaktgruppe.

Parameter:

name
Name der Gruppe

HTTP-Status der Rückgabe:

/api/contacts/groups/:group_id - Daten einer Kontaktgruppe

GET

Liefert alle der Kontaktgruppe zugewiesenen Nutzer zurück.

{
    "members":[
        "e7eaafc2245b04c608d2ce17b8267875"
    ]
}
DELETE

Löscht die angegebene Kontaktgruppe.

HTTP-Status der Rückgabe:

/api/contacts/groups/:group_id/:user_id - Kontaktgruppenverwaltung

PUT

Fügt den angegebenen Nutzer zur angegebenen Kontaktgruppe hinzu.

HTTP-Status der Rückgabe:

DELETE

Löscht den angegebenen Nutzer aus der angegebenen Kontaktgruppe.

HTTP-Status der Rückgabe:

/api/activities - Aktivitäten

GET

Liefert die Aktivitäten im Umfeld des autorisierten Nutzers zurück.

{
    "activities": [
        {
            "id": "7516d73adb81ca271c88986bafd14fd7",
            "title": "Ank\u00fcndigung: Message from outer space spells \"foo\" - scientists left puzzled",
            "author": "John Doe",
            "author_id": "76ed43ef286fb55cf9e41beadb484a9f",
            "link": "http://studip.example.org/about.php?username=root%40studip&amp;nopen=7516d73adb81ca271c88986bafd14fd7#anker",
            "updated": "1336835422",
            "summary": "John Doe hat die pers\u00f6nliche Ank\u00fcndigung \"Message from outer space spells \"foo\" - scientists left puzzled\" eingestellt.",
            "content": "Lorem ipsum dolor...",
            "category": "news"
        }
    ]
}

Diese Route wurde versuchsweise in das ActivityFeed-Plugin von Elmar Ludwig eingebaut und ist noch experimentell.