Skip to content
Snippets Groups Projects
Select Git revision
  • 6de385e9138190818b64d164b95c265f0bb28a12
  • main default protected
2 results

apis

  • Clone with SSH
  • Clone with HTTPS
  • Forked from TU Dortmund Open Data / APIs
    3 commits behind the upstream repository.
    Jonas Zohren's avatar
    Jonas Zohren authored
    6de385e9
    History
    Name Last commit Last update
    README.md

    TU Dortmund-API

    Auth

    Die TU benutzt einen OAuth-Login für die Authorisierung der App-APIs.

    Login

    POST https://mobil.itmc.tu-dortmund.de/oauth2/v2/access_token
    
    {"username":"XXX","password":"XXX","grant_type":"password"}

    Gibt dann zurück:

    {
      "scope": "uid x-de-tudortmund-matr employeeType eduPersonAffiliation givenname sn x-de-tudortmund-ScopedAffiliation employeeNumber",
      "expires_in": 1799,
      "token_type": "Bearer",
      "refresh_token": "<refresh-token>",
      "access_token": "<access-token>"
    }

    Den <access-token> kann man dann bei späteren, authorisierten Requests als Header mitsenden: Authorization: Bearer <access-token>

    GET https://mobil.itmc.tu-dortmund.de/oauth2/v2/tokeninfo (mit Auth):

    {
      "name": "<sm... username>",
      "roles": [
        "student",
        "member"
      ],
      "sn": "<lastname>",
      "givenname": "<firstname>",
      "scope": [
        "uid",
        "x-de-tudortmund-matr",
        "employeeType",
        "eduPersonAffiliation",
        "givenname",
        "sn",
        "x-de-tudortmund-ScopedAffiliation",
        "employeeNumber"
      ],
      "realm": "/tuapp",
      "uid": "<sm... username>",
      "eduPersonAffiliation": [
        "student",
        "member"
      ],
      "token_type": "Bearer",
      "expires_in": 1799,
      "access_token": "<access_token>",
      "x-de-tudortmund-matr": "<matrx_nr>",
      "grant_type": "password",
      "auth_level": 0,
      "client_id": "mobile-app"
    }

    Semesterticket

    Tickets auflisten:

    GET https://mobil.itmc.tu-dortmund.de/ticket/v4/tickets (mit Auth):

    [
      "20211",
      "20212"
    ]

    SemesterId ist z.B. 20211 für SoSe 2021 und 20212 für WiSe 2021/2022

    Ticket als PNG anfordern:

    GET https://mobil.itmc.tu-dortmund.de/ticket/v4/png-tickets/<semesterId> (mit Auth):

    {
      "semesterId": "<semesterId>",
      "ticketData": "<png-data>"
    }

    <png-data> is a base64 encoded PNG of the ticket.

    LSF

    Liste der Semester:

    GET https://mobil.itmc.tu-dortmund.de/lsf/v3/semesters

    Semester-Infos:

    GET https://mobil.itmc.tu-dortmund.de/lsf/v3/20211/header/

    Navigation im Veranstaltungsbaum:

    GET https://mobil.itmc.tu-dortmund.de/lsf/v3/20211/header/118250

    Veranstaltungsdetails:

    GET https://mobil.itmc.tu-dortmund.de/lsf/v3/20211/courseDetails/235739

    Personal

    Personensuche

    GET https://mobil.itmc.tu-dortmund.de/employee-data/v2/employees?q=<suchstring>&offset=0&limit=10

    {
      "data": [
        {
          "tudoid": "DE1130000033013",
          "displayName": "Prof. Dietmar Schmetz",
          "forename": "Dietmar",
          "surname": "Schmetz",
          "email": "ditmar.schmetz@tu-dortmund.de",
          "hrMainPosition": "",
          "primaryPhoneNumber": null,
          "organizationIds": [],
          "employeeExtension": {
            "descriptionDe": null,
            "descriptionEn": null,
            "portraitPubliclyVisible": false,
            "portrait": null,
            "addons": null,
            "faxVisibility": "PUBLIC"
          },
          "visibleAvatar": false
        },
        {
          "tudoid": "DE1130000038944",
          "displayName": "Prof. Dietmar Fröhlich",
          "forename": "Dietmar",
          "surname": "Fröhlich",
          "email": "dietmar.froehlich@tu-dortmund.de",
          "hrMainPosition": "",
          "primaryPhoneNumber": "+49-231-755-3530",
          "organizationIds": [],
          "employeeExtension": {
            "descriptionDe": null,
            "descriptionEn": null,
            "portraitPubliclyVisible": false,
            "portrait": null,
            "addons": null,
            "faxVisibility": "PUBLIC"
          },
          "visibleAvatar": false
        }
      ],
      "pagination": {
        "offset": 0,
        "limit": 20,
        "total": 2
      }
    }

    Details zu einer Person:

    GET https://www.tu-dortmund.de/webapps-backend/employee-data/v2/employees/<tudoid>/numbers

    {
      "data": [
        {
          "type": "ext",
          "e164Num": "+49-231-755-7550",
          "buildingShortname": "HG1",
          "street": "August-Schmidt-Straße 4",
          "roomName": "303A",
          "roomId": 61793,
          "organizationId": "10000353",
          "organizationName": "Rektorat",
          "tudoid": "DE1130000032097"
        },
        {
          "type": "fax",
          "e164Num": "+49-231-755-7557",
          "buildingShortname": "HG1",
          "street": "August-Schmidt-Straße 4",
          "roomName": "301",
          "roomId": 61790,
          "organizationId": "10000353",
          "organizationName": "Rektorat",
          "tudoid": "DE1130000032097"
        }
      ],
      "pagination": null
    }

    Bild einer Person:

    • <tudoid> bekommt man z.B. über die Personensuche.
    • <quality> kann sein: SMALL, MEDIUM oder ORIGINAL

    GET https://www.tu-dortmund.de/webapps-backend/employee-data/v2/employees/<tudoid>/portrait?type=AVATAR&quality=<quality>

    Organisationssuche

    GET https://www.tu-dortmund.de/webapps-backend/employee-data/v2/organizations?q=<suchstring>&offset=0&limit=20:

    {
      "data": [
        {
          "oid": "10000353",
          "description": "Rektorat",
          "departmentDescription": "Rektorat",
          "pOid": "10000008"
        },
        {
          "oid": "10002450",
          "description": "Stabsstelle Strategie u. Rektoratsangelegenheiten",
          "departmentDescription": "Dezernat 2 Hochschulentwicklung und Organisation",
          "pOid": "10000368"
        }
      ],
      "pagination": {
        "offset": 0,
        "limit": 10,
        "total": 2
      }
    }

    Details zu einer Organisation

    GET https://www.tu-dortmund.de/webapps-backend/employee-data/v2/organizations/<organizationId>:

    {
      "oid": "10000686",
      "description": "Fraunhofer",
      "departmentDescription": "Fakultät Informatik",
      "pOid": "10000644"
    }

    Abfahrtsmonitor

    Liste der Stationen:

    GET https://mobil.itmc.tu-dortmund.de/departure/v1/stations

    Abfahrten an einer Station:

    GET https://mobil.itmc.tu-dortmund.de/departure/v1/stations/20000472/departures

    Gebäude

    GET https://service.tu-dortmund.de/o/edu.udo.itmc.dev.presencetracking/conjectfm/rest/v2/buildings

    GET https://service.tu-dortmund.de/o/edu.udo.itmc.dev.presencetracking/conjectfm/rest/v2/buildings/<building-id>/floors

    GET https://service.tu-dortmund.de/o/edu.udo.itmc.dev.presencetracking/conjectfm/rest/v2/buildings/floors/<floor-id>/rooms

    Alternativer Endpunkt dieser API: https://mobil.itmc.tu-dortmund.de/conjectfm/v2/buildings

    Mensa

    Übersicht:

    GET https://mobil.itmc.tu-dortmund.de/canteen-menu/v3/canteens

    [
      {
        "id": "341",
        "name": {
          "de": "Hauptmensa",
          "en": "Hauptmensa"
        }
      },
      {
        "id": "342",
        "name": {
          "de": "Mensa Süd",
          "en": "Mensa Süd"
        }
      }
    ]

    Menü:

    GET https://mobil.itmc.tu-dortmund.de/canteen-menu/v3/canteens/<canteen-id>

    GET https://mobil.itmc.tu-dortmund.de/canteen-menu/v3/canteens/<canteen-id>/2021-08-26?expand=true

    [
      {
        "title": {
          "de": "Veganer Rigatonigratin mit Gemüse und Knoblauch (2,4,7,20a,25,28)",
          "en": "Veganer Rigatonigratin mit Gemüse und Knoblauch (2,4,7,20a,25,28)"
        },
        "type": [
          "N"
        ],
        "additives": [
          "2",
          "4",
          "20a",
          "25",
          "28"
        ],
        "category": "104",
        "price": {
          "student": "2,00 €",
          "staff": "3,50 €",
          "guest": "3,50 €"
        },
        "dispoId": "2635432",
        "counter": "Vegetarisches Menü",
        "position": 4
      },
      {
        "title": {
          "de": "gebratene Ravioli mit Spinat u. Kürbiskernen (20a) dazu Käsesauce (2,4,26) und Salat (7,20a,22,26)",
          "en": "gebratene Ravioli mit Spinat u. Kürbiskernen (20a) dazu Käsesauce (2,4,26) und Salat (7,20a,22,26)"
        },
        "type": [
          "V"
        ],
        "additives": [
          "2",
          "4",
          "20a",
          "26"
        ],
        "category": "105",
        "price": {
          "student": "2,00 €",
          "staff": "3,50 €",
          "guest": "3,50 €"
        },
        "dispoId": "2635725",
        "counter": "Aktionsteller",
        "position": 5
      }
    ]

    Öffnungszeiten:

    GET https://mobil.itmc.tu-dortmund.de/canteen-menu/v3/canteens/<canteen-id>/openings

    {
      "morningStartTime": "11:30:00",
      "morningEndTime": "14:00:00",
      "afternoonStartTime": null,
      "afternoonEndTime": null
    }

    Sonder-Tiles

    Liste der verfügbaren Sondertiles abrufen:

    GET https://mobil.itmc.tu-dortmund.de/tiles/v2:

    [
      {
        "id": 6,
        "name": [
          {
            "id": 21,
            "locale": "de_DE",
            "value": "Online-Wahlen"
          },
          {
            "id": 22,
            "locale": "en_US",
            "value": "Online Elections"
          }
        ],
        "start": "2021-06-22T08:00:44+02:00",
        "end": "2021-07-01T15:00:44+02:00",
        "state": "ACTIVE"
      },
      {
        "id": 10,
        "name": [
          {
            "id": 37,
            "locale": "de_DE",
            "value": "Jetzt bewerben!"
          },
          {
            "id": 38,
            "locale": "en_US",
            "value": "Apply now!"
          }
        ],
        "start": "2021-08-15T01:00:14+02:00",
        "end": "2021-09-15T01:00:14+02:00",
        "state": "ACTIVE"
      }
    ]

    Details zu den Tiles:

    GET https://mobil.itmc.tu-dortmund.de/tiles/v2/<tile-id>:

    {
      "id": 10,
      "name": [
        {
          "id": 37,
          "locale": "de_DE",
          "value": "Jetzt bewerben!"
        },
        {
          "id": 38,
          "locale": "en_US",
          "value": "Apply now!"
        }
      ],
      "content": [
        {
          "id": 39,
          "locale": "de_DE",
          "value": "<h2>Deutsch­land­stipen­dium an der TU Dortmund: Noch bis zum 15. September bewerben!</h2><p>....</p>"
        },
        {
          "id": 40,
          "locale": "en_US",
          "value": "<h2>Deutschlandstipendium: Apply by September 15, 2021!</h2><h2><br></h2>..."
        }
      ],
      "start": "2021-08-15T01:00:14+02:00",
      "end": "2021-09-15T01:00:14+02:00",
      "state": "ACTIVE"
    }

    SVG icons zu den Tiles:

    GET https://mobil.itmc.tu-dortmund.de/tiles/v2/<tile-id>/icon:

    svg data halt...

    Corona-Tracing:

    GET https://mobil.itmc.tu-dortmund.de/presencetracking-backend/v1/contactdata/data (mit Auth):

    {
      "email":null,
      "telephone":"<nummer>"
    }

    Liefert also die im Service-Portal hinterlegten Adressdaten

    Stundenplan

    GET https://mobil.itmc.tu-dortmund.de/lsf/v3/lsfEvents?date=2021-07-06 (mit Auth):

    [
      {
        "name": "Effiziente Algorithmen",
        "type": "Wahlpflichtvorlesung",
        "courseId": "235720",
        "startTime": "2021-07-06T10:15:00.000+02:00",
        "endTime": "2021-07-06T12:00:00.000+02:00",
        "rhythmStartDate": "2021-04-12T10:15:00.000+02:00",
        "rhythmEndDate": "2021-07-23T12:00:00.000+02:00",
        "building": "k.A.",
        "room": "online",
        "rhythm": "wöchentlich",
        "approvalStatus": "SP",
        "responsiblePersons": [
          {
            "firstName": "Bernd Thomas",
            "lastName": "Zey",
            "gender": "M",
            "responsibility": ""
          }
        ],
        "dayOfWeek": "Dienstag"
      },
      {
        "name": "Rechnerarchitektur",
        "type": "Wahlpflichtvorlesung",
        "courseId": "235681",
        "startTime": "2021-07-06T12:15:00.000+02:00",
        "endTime": "2021-07-06T14:00:00.000+02:00",
        "rhythmStartDate": "2021-04-12T12:15:00.000+02:00",
        "rhythmEndDate": "2021-07-23T14:00:00.000+02:00",
        "building": "k.A.",
        "room": "online",
        "rhythm": "wöchentlich",
        "approvalStatus": "ZU",
        "responsiblePersons": [
          {
            "firstName": "Christian",
            "lastName": "Hakert",
            "gender": "M",
            "responsibility": "begleitend"
          },
          {
            "firstName": "Jian-Jia",
            "lastName": "Chen",
            "gender": "M",
            "responsibility": "verantwort"
          }
        ],
        "dayOfWeek": "Dienstag"
      },
      {
        "name": "Softwaretechnik/Softwaretechnik für Wirtschaftsmathematik",
        "type": "Vorlesung",
        "courseId": "235728",
        "startTime": "2021-07-06T16:15:00.000+02:00",
        "endTime": "2021-07-06T18:00:00.000+02:00",
        "rhythmStartDate": "2021-04-12T16:15:00.000+02:00",
        "rhythmEndDate": "2021-07-23T18:00:00.000+02:00",
        "building": "k.A.",
        "room": "online",
        "rhythm": "wöchentlich",
        "approvalStatus": "ZU",
        "responsiblePersons": [
          {
            "firstName": "Benjamin",
            "lastName": "Hermann",
            "gender": "M",
            "responsibility": ""
          },
          {
            "firstName": "Falk",
            "lastName": "Howar",
            "gender": "M",
            "responsibility": ""
          },
          {
            "firstName": "Stefan",
            "lastName": "Dissmann",
            "gender": "M",
            "responsibility": ""
          }
        ],
        "dayOfWeek": "Dienstag"
      }
    ]

    "Leistungen" / BOSS-Prüfungsdaten

    GET https://mobil.itmc.tu-dortmund.de/lsf/v3/courses (mit Auth):

    [
      {
        "labID": "5776334",
        "pnr": "65691",
        "leistung": "Modulprüfung: Rechnerarchitektur",
        "pstatusKurz": "AN",
        "pstatus": "angemeldet",
        "pnote": "",
        "pdatum": "14.09.2021",
        "prueferNachname": "Chen",
        "prueferVorname": "Jian-Jia",
        "vermerkKurz": "",
        "vermerk": "",
        "partKurz": "MO",
        "part": "Modulprüfung",
        "aenddat": "22.08.2021"
      },
      {
        "labID": "5707146",
        "pnr": "87891",
        "leistung": "Modulprüfung: Datenbanken in der Praxis",
        "pstatusKurz": "AN",
        "pstatus": "angemeldet",
        "pnote": "",
        "pdatum": "05.08.2021",
        "prueferNachname": "Teubner",
        "prueferVorname": "Jens",
        "vermerkKurz": "RT",
        "vermerk": "Stornierung Online",
        "partKurz": "MO",
        "part": "Modulprüfung",
        "aenddat": "06.07.2021"
      },
      {
        "labID": "5673901",
        "pnr": "87841",
        "leistung": "Studienleistung: Übungen zu Datenbanken in der Praxis",
        "pstatusKurz": "BE",
        "pstatus": "bestanden",
        "pnote": "",
        "pdatum": "",
        "prueferNachname": "",
        "prueferVorname": "",
        "vermerkKurz": "BE",
        "vermerk": "Eintrag BE, unbenotet",
        "partKurz": "SL",
        "part": "Studienleistungen",
        "aenddat": "23.06.2021"
      }
    ]

    CampusID / UniBib-Ausweis

    CampusID / Digitaler Bibliotheksausweis als QR-Code anfordern:

    GET https://mobil.itmc.tu-dortmund.de/campus-id/v1/totp/secret (mit Auth)

    {
      "uuid": "<uuid>,
      "secret": "<secret>",
      "createdDate": "2021-08-27T12:13:25.127+02:00",
      "lastAccessDate": "2021-08-27T12:13:25.127+02:00",
      "expirationDate": "2021-11-25T12:13:25.127+01:00"
    }

    Daraus wird dann ein QR-Code nach folgendem URL-Schema generiert:

    tudo://app/campusId/v1/auth?uuid=<uuid>&totp=<6-digit-totp>

    Die uuid wird übernommen.

    Zeitfenster für TOTP generation: 30 Sekunden

    CampusID / Digitalen Bibliotheksausweis überprüfen:

    GET https://mobil.itmc.tu-dortmund.de/campus-id/v1/totp/valid?uuid=<uuid>&totp=<6-digit-totp>:

    {
      "valid":true
    }

    Uni-Bibliothek

    Liste der Vormerkungen

    GET https://mobil.itmc.tu-dortmund.de/library-account/v3/items/reserved (mit Auth):

    []

    Liste der Ausleihen

    GET https://mobil.itmc.tu-dortmund.de/library-account/v3/items/borrowed (mit Auth):

    []

    Liste der Bestellungen

    GET https://mobil.itmc.tu-dortmund.de/library-account/v3/items/ordered (mit Auth):

    []

    Liste der Säumnisgebühren

    GET https://mobil.itmc.tu-dortmund.de/library-account/v3/items/fees (mit Auth):

    []