Kalibrierungen (Calibrations)¶
Die Kalibrierungs-API verwaltet alle Kalibriervorgänge. Jede Kalibrierung hängt an
genau einem Gerät: die id der Kalibrierung ist der frühere CTAG, das Feld
inventory_id der frühere MTAG des Geräts (siehe
IDs: MTAG, CTAG und die anderen Tags).
Endpunkte¶
| Methode | Pfad | Beschreibung | Berechtigung |
|---|---|---|---|
GET |
/api/v2/calibrations |
Alle Kalibrierungen auflisten | calibration_view |
GET |
/api/v2/calibrations/{id} |
Einzelne Kalibrierung abrufen | calibration_view |
POST |
/api/v2/calibrations |
Kalibrierung anlegen | calibration_edit |
PUT |
/api/v2/calibrations/{id} |
Kalibrierung aktualisieren | calibration_edit |
DELETE |
/api/v2/calibrations/{id} |
Kalibrierung löschen | calibration_delete |
Sub-Ressourcen¶
| Methode | Pfad | Beschreibung |
|---|---|---|
GET |
/api/v2/calibrations/{id}/results |
Messergebnisse der Kalibrierung |
GET |
/api/v2/calibrations/{id}/standards |
Verwendete Normale/Standards |
Feldmapping¶
| Metrologie-Code | API-Feldname | Beschreibung |
|---|---|---|
C2301 |
calibration_date |
Kalibrierdatum |
C2303 |
next_calibration_date |
Nächste Kalibrierung |
C2306 |
certificate_number |
Zertifikatsnummer |
C2323 |
cal_result |
Prüfentscheid / Ergebnis |
C2333 |
calibration_time |
Kalibrierzeit |
Alle Kalibrierungen auflisten¶
curl -X GET "https://example.com/api/v2/calibrations?page[number]=1&page[size]=25" \
-H "Authorization: Bearer {token}" \
-H "Accept: application/json"
Query-Parameter¶
| Parameter | Typ | Beschreibung |
|---|---|---|
page[number] |
integer | Seitennummer (Standard: 1) |
page[size] |
integer | Einträge pro Seite (Standard: 25) |
sort |
string | Sortierfeld, z.B. calibration_date oder -next_calibration_date |
filter[cal_result] |
string | Nach Ergebnis filtern (z.B. passed, failed) |
filter[inventory_id] |
uuid | Kalibrierungen eines bestimmten Geräts (V1: dessen MTAG) |
filter[calibration_date_from] |
date | Ab Datum (YYYY-MM-DD) |
filter[calibration_date_to] |
date | Bis Datum (YYYY-MM-DD) |
Antwort¶
{
"data": [
{
"id": "3b17ad90-88c2-4e15-b0aa-2f9e6c4471aa",
"inventory_id": "ea79f4c2-1b3d-4c88-9f21-7c0a5d13e001",
"calibration_date": "2024-06-15",
"next_calibration_date": "2025-06-15",
"result": "passed",
"uncertainty": "0.05 %",
"procedure": "DAkkS-DKD-R 5-1",
"relationships": {
"results": [
{ "id": 30, "measured_value": "10.002", "reference_value": "10.000" }
],
"standards": [
{ "id": 7, "name": "Referenznormal RN-001", "certificate": "DAkkS-K-12345" }
]
}
}
],
"meta": {
"current_page": 1,
"per_page": 25,
"total": 58,
"last_page": 3
},
"links": {
"first": "/api/v2/calibrations?page=1",
"last": "/api/v2/calibrations?page=3",
"next": "/api/v2/calibrations?page=2",
"prev": null
}
}
Einzelne Kalibrierung abrufen¶
curl -X GET "https://example.com/api/v2/calibrations/3b17ad90-88c2-4e15-b0aa-2f9e6c4471aa" \
-H "Authorization: Bearer {token}" \
-H "Accept: application/json"
Kalibrierung anlegen¶
Eine Kalibrierung wird über inventory_id mit einem Gerät verknüpft. Das ist
der Wert, den V1 als MTAG kennt; der V1-Schlüsselname wird beim Schreiben
ebenfalls akzeptiert.
curl -X POST "https://example.com/api/v2/calibrations" \
-H "Authorization: Bearer {token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"inventory_id": "ea79f4c2-1b3d-4c88-9f21-7c0a5d13e001",
"calibration_date": "2024-06-15",
"next_calibration_date": "2025-06-15",
"result": "passed",
"uncertainty": "0.05 %",
"procedure": "DAkkS-DKD-R 5-1"
}'
Verknüpfung mit Inventar
inventory_id ist Pflicht und nachträglich nicht änderbar: Zertifikat,
Messwerte und Prüfschritte gehören zu diesem Gerät. Für ein anderes Gerät
eine eigene Kalibrierung anlegen.
Erfolgreiche Antwort (201)¶
{
"data": {
"id": "7f4c1e08-2ab9-49d7-8c33-5e1b90aa4d12",
"inventory_id": "ea79f4c2-1b3d-4c88-9f21-7c0a5d13e001",
"calibration_date": "2024-06-15",
"next_calibration_date": "2025-06-15",
"result": "passed",
"uncertainty": "0.05 %",
"procedure": "DAkkS-DKD-R 5-1"
}
}
Kalibrierung aktualisieren¶
curl -X PUT "https://example.com/api/v2/calibrations/7f4c1e08-2ab9-49d7-8c33-5e1b90aa4d12" \
-H "Authorization: Bearer {token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"result": "failed",
"uncertainty": "0.08 %"
}'
Kalibrierung löschen¶
curl -X DELETE "https://example.com/api/v2/calibrations/7f4c1e08-2ab9-49d7-8c33-5e1b90aa4d12" \
-H "Authorization: Bearer {token}" \
-H "Accept: application/json"
Achtung
Das Löschen einer Kalibrierung entfernt auch alle verknüpften Messergebnisse und Standardzuordnungen.
Sub-Ressourcen¶
Messergebnisse abrufen¶
curl -X GET "https://example.com/api/v2/calibrations/3b17ad90-88c2-4e15-b0aa-2f9e6c4471aa/results" \
-H "Authorization: Bearer {token}" \
-H "Accept: application/json"
{
"data": [
{
"id": 30,
"calibration_id": "3b17ad90-88c2-4e15-b0aa-2f9e6c4471aa",
"measured_value": "10.002",
"reference_value": "10.000",
"deviation": "0.002",
"unit": "V",
"in_tolerance": true
}
]
}
Verwendete Normale abrufen¶
curl -X GET "https://example.com/api/v2/calibrations/3b17ad90-88c2-4e15-b0aa-2f9e6c4471aa/standards" \
-H "Authorization: Bearer {token}" \
-H "Accept: application/json"
{
"data": [
{
"id": 7,
"name": "Referenznormal RN-001",
"certificate": "DAkkS-K-12345",
"valid_until": "2025-12-31"
}
]
}
Filterbeispiele¶
# Nur fehlgeschlagene Kalibrierungen
curl "https://example.com/api/v2/calibrations?filter[result]=failed" \
-H "Authorization: Bearer {token}"
# Kalibrierungen eines Inventars, sortiert nach Datum
curl "https://example.com/api/v2/calibrations?filter[inventory_id]=ea79f4c2-1b3d-4c88-9f21-7c0a5d13e001&sort=-calibration_date" \
-H "Authorization: Bearer {token}"
# Kalibrierungen in einem Zeitraum
curl "https://example.com/api/v2/calibrations?filter[calibration_date_from]=2024-01-01&filter[calibration_date_to]=2024-12-31" \
-H "Authorization: Bearer {token}"
Fehlercodes¶
| HTTP-Status | Bedeutung |
|---|---|
401 |
Nicht authentifiziert — ungültiger oder fehlender Token |
403 |
Keine Berechtigung (calibration_view, calibration_edit oder calibration_delete fehlt) |
404 |
Kalibrierung nicht gefunden |
422 |
Validierungsfehler — z.B. ungültiges Datum oder fehlende inventory_id |
429 |
Rate-Limit überschritten |