Schüler über die API Abrufen

Alles zu SchILD-NRW 3, was sonst keinen Platz findet.

Moderatoren: Raffenberg, A. Schüller, Pfotenhauer

Antworten
kroerig
Beiträge: 398
Registriert: Samstag 5. Januar 2019, 20:18
Schulform: - keine Schule -
Kontaktdaten:

Schüler über die API Abrufen

Beitrag von kroerig »

Hallo,

vielleicht kann mir hier jemand einen Tipp geben. Ich möchte über die API eine Liste aller gerade aktiven Schüler abrufen.

Im SwaggerUI habe ich dazu folgenden Endpunkt gefunden, der von der Beschreibung her genau diese Liste liefern soll: /db/{schema}/schueler/aktuell
Erstellt eine Liste aller im aktuellen Schuljahresabschnitt vorhanden Schüler unter Angabe der ID, des Vor- und Nachnamens, der Klasse, des Jahrgangs, sein Status (z.B. aktiv), einer Sortierreihenfolge, ob sie in der Anwendung sichtbar bzw. änderbar sein sollen.
Wenn ich den Abfrage, erhalte ich knapp 4000 Einträge zurück. Das ist so knapp das fünffach von dem, was ich erwartet hätte.
Was stimmt da nicht? Die Funktion des Endpunkts oder die Beschreibung? Ein "Erstellt eine Liste aller im SVWS vorhandener Schüler ..." trifft es vermutlich ehr. Da sind nämlich auch Schüler dabei, die die Schule bereits 1992 mit Abitur verlassen haben.
"Der Computer rechnet mit allem - nur nicht mit seinem Besitzer." Dieter Hildebrandt
M. Plümper
Fachberater*in
Beiträge: 764
Registriert: Montag 1. Oktober 2018, 20:30
Schulform: Gymnasium
Kontaktdaten:

Re: Schüler über die API Abrufen

Beitrag von M. Plümper »

Ich denke, dass dort alle Schüler erfasst werden, die einen Status im aktuellen Abschnitt haben. Da zählen auch die Abgänger usw. zu. Sie können die Liste dann anhand des Status filtern (2 müsste aktiv sein).
kroerig
Beiträge: 398
Registriert: Samstag 5. Januar 2019, 20:18
Schulform: - keine Schule -
Kontaktdaten:

Re: Schüler über die API Abrufen

Beitrag von kroerig »

Das die Abgänger im aktuellen Abschnitt dabei sind, Ok.

Aber die Schule hat max. 800 Schüler pro Jahr und keine 4000.
Und Abgänger aus 1992 können nicht im aktuellen Abschnitt sein.
"Der Computer rechnet mit allem - nur nicht mit seinem Besitzer." Dieter Hildebrandt
hmt
Beiträge: 52
Registriert: Sonntag 9. Dezember 2018, 20:25
Schulform: Berufskolleg
Kontaktdaten:

Re: Schüler über die API Abrufen

Beitrag von hmt »

Es gibt auch

Code: Alles auswählen

/db/{schema}/schueler/abschnitt/{abschnitt}/auswahlliste
Da werden alle Infos aus dem aktuellen Abschnitt geholt, also auch die Schüler. Im Client wird das für die Auswahlliste verwendet.

Alternativ kann auch die externe Schnittstelle für Lernplattformen verwendet werden.
kroerig
Beiträge: 398
Registriert: Samstag 5. Januar 2019, 20:18
Schulform: - keine Schule -
Kontaktdaten:

Re: Schüler über die API Abrufen

Beitrag von kroerig »

Die habe ich auch schon versucht. Auch da erhalte ich 4000 Schüler statt der erwarteten etwa 800.

Die Lernplattformen nützen mir nichts, da die Funktion nicht verwendet wird.
"Der Computer rechnet mit allem - nur nicht mit seinem Besitzer." Dieter Hildebrandt
hmt
Beiträge: 52
Registriert: Sonntag 9. Dezember 2018, 20:25
Schulform: Berufskolleg
Kontaktdaten:

Re: Schüler über die API Abrufen

Beitrag von hmt »

Da sind ebenfalls alle Schülerdaten des aktuellen Abschnitts drin, unabhängig von der genutzten Platform
kroerig
Beiträge: 398
Registriert: Samstag 5. Januar 2019, 20:18
Schulform: - keine Schule -
Kontaktdaten:

Re: Schüler über die API Abrufen

Beitrag von kroerig »

hmt hat geschrieben: Freitag 3. April 2026, 23:43 Da sind ebenfalls alle Schülerdaten des aktuellen Abschnitts drin, unabhängig von der genutzten Platform
In welchem Endpunkt? Den für die Lernplattformen kann ich nicht nutzen, da es keine Lernplattformen gibt. Mir fehlt also schon die ID für die Abfrage.
"Der Computer rechnet mit allem - nur nicht mit seinem Besitzer." Dieter Hildebrandt
M. Plümper
Fachberater*in
Beiträge: 764
Registriert: Montag 1. Oktober 2018, 20:30
Schulform: Gymnasium
Kontaktdaten:

Re: Schüler über die API Abrufen

Beitrag von M. Plümper »

Guten Morgen,

ich glaube, ich habe das oben nicht klar genug formuliert. Sobald ein Schüler einmal eine Lernabschnitt an der Schule hatte (also die Schule besucht hat), ist er ab diesem Zeitpunkt auf immer und ewig Schüler der Schule, das einzige, was sich ändert, ist sein Status. Nach dem er die Schule verlassen hat, hat er halt den Status Abschluss oder Abgang oder Ehemaliger. Und das gilt auch noch 30 Jahre später. Und mit diesem Status ist er auch nach 30 Jahren noch im aktuellen Schuljahresabschnitt enthalten. So ist wohl die Dokumentation zum API-Endpunkt zu lesen.
Erstellt eine Liste aller im aktuellen Schuljahresabschnitt vorhanden Schüler unter Angabe der ID, des Vor- und Nachnamens, der Klasse, des Jahrgangs, sein Status (z.B. aktiv), einer Sortierreihenfolge, ob sie in der Anwendung sichtbar bzw. änderbar sein sollen.
Daher noch mal meine Empfehlung. Nach der Abfrage einfach auf den Status filtern. Dann hat man die aktiven SuS.

Und ja, ich persönlich würde auch einen Endpunkt gut finden, wo man neben dem Schuljahresabschnitt noch eine Liste an Statusinformationen mitgeben könnte, damit man gleich die gewünschte Schülergruppe erhält.
kleind
Beiträge: 16
Registriert: Dienstag 7. Oktober 2025, 10:18
Schulform: GY, Fachberatung

Re: Schüler über die API Abrufen

Beitrag von kleind »

Hallo Herr Kroerig,

Sie können sich einen Endpunkt z.B. "meinExport" definieren unter /db/{schema}/schule/lernplattformen/create (vgl. Screenshot unten)
Wir haben diese Funktionalität noch nicht im Webclient umgesetzt.

Anschließend kann ein JSON über den Webclient -> Schule -> Lernplattformen Export oder über die zugehörige Api

Code: Alles auswählen

https://IHR_SERVER/api/external/IHRE_DB/v1/lernplattformen/1/1
abgerufen werden.
Dateianhänge
lp.png
lp.png (49.31 KiB) 30 mal betrachtet
kroerig
Beiträge: 398
Registriert: Samstag 5. Januar 2019, 20:18
Schulform: - keine Schule -
Kontaktdaten:

Re: Schüler über die API Abrufen

Beitrag von kroerig »

Hallo,

und dann? Habe ich eine Lernplattform, aber noch keine Zuordnung bzw. Filter zu den aktiven Schülern.
Und ja, ich persönlich würde auch einen Endpunkt gut finden, wo man neben dem Schuljahresabschnitt noch eine Liste an Statusinformationen mitgeben könnte, damit man gleich die gewünschte Schülergruppe erhält.
Für die Lehrer gibt es ja so etwas ähnliches. Da kann ich per POST eine Liste von IDs übergeben und bekomme die Stammdaten zurück. Soetwas auch für Schüler zu haben, wäre super. Eine Datenbank filtert nämlich schneller als jede Scriptsprache.

Beispiel:
Eine Abfrage von Stammdaten (mit Auflösen der Orte) und Unterrichtsfächern für alle aktiven Lehrer dauert bei mir über die API 20 Sekunden. Die Datenbank braucht für eine gleiche Abfrage mit mehreren Joins unter einer Sekunde.

Jetzt 4000 Datensätze durchiterieren kann ja nicht im Sinne des Erfinders sein, oder? Später brauche ich nämlich auch noch eine Liste mit allen Kurszuordnungen. Da wird die API ja nie fertig.
"Der Computer rechnet mit allem - nur nicht mit seinem Besitzer." Dieter Hildebrandt
Antworten

Zurück zu „Verschiedenes“