DokumentationProdukteArtim Academy LMSCode-ReviewsCode-Reviews V1
Eingegangene Review bewerten
In API Explorer austestenÖffnet den Explorer mit Methode und Pfad dieses Requests.
Nimmt die Review eines Schülers an oder weist sie zurück.
accepted heißt: der Schüler hat richtig gelesen und richtig entschieden. rejected gibt zurück — mit feedback, denn eine Zurückweisung ohne Begründung ist an dieser Stelle wertlos. Der Schüler wird benachrichtigt und sieht beides im Kurs.
PUT https://code-reviews.api.lms.artim-industries.com/v1/courses/{courseId}/code-reviews/{id}/submissions/{submissionId}/grade
| Methode | PUT |
| Basis | code-reviews.api.lms.artim-industries.com/v1 |
| Scope | lms.codeReviews.submissions:grade |
| Antwort | 200 |
| Zugang | Developer Mitgliedschaft |
| Auth | Authorization: Bearer lmsapi_… |
Parameter
| Parameter | Ort | Typ | Pflicht | Bedeutung |
|---|---|---|---|---|
courseId | Pfad | string | ja | Die Kennung des Kurses aus der Kursliste. |
id | Pfad | string | ja | Die Kennung der Review-Aufgabe. |
submissionId | Pfad | string | ja | Die Kennung der Einreichung. |
Anfragekörper
| Feld | Typ | Bedeutung |
|---|---|---|
status | string | accepted oder rejected. Pflicht. |
grade | integer | Die Bewertung 0–100. |
feedback | string | Der Kommentar an den Schüler. Bei rejected Pflicht. |
Felder, die der Vertrag nicht nennt, werden verworfen — ein Client kann keine eigenen Felder unterschieben.
{ "status": "accepted", "grade": 85, "feedback": "Alle drei gefunden, Ton stimmt." }
Anfrage
curl -X PUT "https://code-reviews.api.lms.artim-industries.com/v1/courses/{courseId}/code-reviews/{id}/submissions/{submissionId}/grade" \
-H "Authorization: Bearer lmsapi_…" \
-H "Content-Type: application/json" \
-d '{ "status": "accepted", "grade": 85, "feedback": "Alle drei gefunden, Ton stimmt." }'
Antwort
| Feld | Typ | Bedeutung |
|---|---|---|
id | string | Die Kennung der Einreichung. |
status | string | Der Stand danach. |
grade | integer | Die gesetzte Bewertung. |
reviewedAt | string | Wann bewertet wurde. |
{ "id": "crsub_41", "status": "accepted", "grade": 85, "reviewedAt": "2026-08-28T10:05:00Z" }
Fehler
| Status | code | Wann |
|---|---|---|
400 | invalid_request | Ein Pflichtfeld fehlt, ein Typ passt nicht, oder ein Verweis zeigt auf etwas, das es hier nicht gibt. |
401 | invalid_token | Bearer fehlt, ist unbekannt oder abgelaufen. |
403 | missing_scope | Das Token trägt den Scope dieses Endpunkts nicht. |
404 | not_found | Der Eintrag gehört nicht zum freigegebenen Akademie — oder die Anfrage kam auf der falschen Subdomain an. |
409 | conflict | Der Zustand verbietet die Änderung — der Fehlerkörper nennt den Grund. |
429 | rate_limited | Kontingent erschöpft, siehe Retry-After. |
Jede Fehlerantwort trägt dieselbe Hülle: error.code benennt den Fehler, error.message sagt in einem Satz, was fehlt.
Rate Limits
Das Limit gilt pro Team, nicht pro Token.
| Zugang | Produktion | Sandbox |
|---|---|---|
| Hobby | 60 Anfragen/Minute | ohne Limit |
| Developer Mitgliedschaft | 10.000 Anfragen/Minute | ohne Limit |
Bei 429 sagt der Retry-After-Header, wie lange du warten sollst.