Odzyskiwanie błędów API
Stabilne kody błędów Secani OSCAL Validation API, pola odpowiedzi RFC 9457 i bezpieczne kroki odzyskiwania dla klientów i agentów.
Interfejs Secani OSCAL Validation API zwraca błędy jako szczegóły problemu zgodne z RFC 9457, z typem nośnika application/problem+json. Klient może podejmować decyzje na podstawie stabilnego pola code, wyświetlać użytkownikowi title i detail oraz korzystać z pola resolution bez analizowania tekstu komunikatu. Pola type i documentation prowadzą do odpowiedniego wpisu na tej stronie.
{
"type": "https://secani.com/docs/oscal/api/errors#ERR_INVALID_JSON",
"title": "Invalid JSON",
"status": 400,
"code": "ERR_INVALID_JSON",
"detail": "The submitted document is not well-formed JSON.",
"resolution": "Send one well-formed JSON document as the request body and check commas, quotes, and brackets.",
"documentation": "https://secani.com/docs/oscal/api/errors#ERR_INVALID_JSON"
}Nigdy nie dołączaj klucza API, całkowicie poufnego dokumentu ani innego sekretu do zgłoszenia serwisowego. Zamiast tego zapisz status, stabilny kod, nagłówki odpowiedzi i minimalną zredagowaną reprodukcję.
Zachowanie klienta
- Traktować
400,401,405,413, I415jako problemy związane z żądaniami, które wymagają zmiany klienta przed ponowną próbą. - Dla
429I503, szacunekRetry-After. Nie twórz ścisłej pętli ponawiania prób. - Spróbować ponownie
500raz z odliczeniem. Jeśli problem będzie się powtarzał, skontaktuj się z Secani, przekazując stabilny kod i poprawioną reprodukcję. - Wynik weryfikacji za pomocą protokołu HTTP
200I"valid": falsenie jest błędem API. Jest to pomyślny raport dotyczący nieprawidłowego dokumentu OSCAL.
ERR_INVALID_JSON
Treść nie jest dobrze uformowana w formacie JSON. Wyślij dokładnie jeden dokument JSON, sprawdź cudzysłowy i przecinki oraz zweryfikuj plik lokalnie przed ponowną próbą.
ERR_INVALID_UTF8
Treści nie można zdekodować w formacie UTF-8. Zakoduj ponownie źródło jako UTF-8 bez zastępowania nieprawidłowych bajtów, a następnie prześlij je ponownie za pomocą Content-Type: application/json.
ERR_UNKNOWN_MODEL
JSON nie zawiera jednego rozpoznanego modelu głównego OSCAL. Skorzystaj z katalogu, profilu, definicji komponentów OSCAL 1.2.2, planu bezpieczeństwa systemu, planu oceny, wyników oceny, POA&M lub kompletnego dokumentu modelowego.
ERR_INVALID_CONTENT_ENCODING
Zgłoszono żądanie Content-Encoding: gzip, ale bajty nie były prawidłowym plikiem gzip. Wyślij oryginalną treść tożsamości lub utwórz nowy strumień gzip i zachowaj spójność nagłówka z rzeczywistym ładunkiem.
ERR_UNSUPPORTED_PARAMETER
Parametr zapytania zawiera nieobsługiwaną wartość. Używać level=schema Lub level=full, przekazuj udokumentowane identyfikatory reguł semantycznych tylko za pomocą level=full, i przypnij oscal-version Do 1.2.2.
ERR_METHOD_NOT_ALLOWED
Punkt końcowy walidacji akceptuje POST do sprawdzenia i OPTIONS do odkrywania między źródłami. Wyślij dokument OSCAL jako treść POST, zamiast używać GET.
ERR_NOT_FOUND
Żądana ścieżka API wersji 1 nie została opublikowana. Zacznij od Indeks API lub użyj kanonicznego Dokument OpenAPI aby wybrać punkt końcowy.
ERR_PAYLOAD_TOO_LARGE
Rozmiar nieprzetworzonego żądania przekracza 4 MB lub treść zdekompresowanego pliku gzip przekracza 24 MB. OSCAL JSON dobrze kompresuje: spakuj dokument gzipem, przechowuj zdekompresowany ładunek w granicach 24 MB lub podziel pracę na poszczególne dokumenty.
ERR_UNSUPPORTED_MEDIA_TYPE
Punkt końcowy akceptuje JSON z kodowaniem tożsamości lub gzip. Ustawić Content-Type: application/json i usuń nieobsługiwane typy zawartości lub kodowanie treści.
ERR_RATE_LIMITED
Aktywne okno żądania zostało wyczerpane. Czekać na Retry-After, użyj RateLimit-* nagłówki, aby sterować przyszłymi połączeniami, lub utwórz uniwersalny klucz API OSCAL dla wyższych limitów.
ERR_INVALID_API_KEY
Dostarczony klucz na okaziciela jest nieznany lub unieważniony. Zamień go na aktywny sk_oscal_ klucz z ustawień organizacji. Przedstawiony nieprawidłowy klucz nigdy nie zapewnia dostępu anonimowego.
ERR_KEY_SERVICE_UNAVAILABLE
Weryfikacja danych uwierzytelniających lub limitu szybkości jest tymczasowo niedostępna, dlatego weryfikacja nie została przeprowadzona. Czekać na Retry-After i spróbuj ponownie. Nie przenoś klucza do ciągu zapytania lub innego kanału.
BŁĄD_INTERNAL
Wystąpił nieoczekiwany błąd serwera bez ujawnienia elementów wewnętrznych. Spróbuj ponownie później. Jeśli będzie się powtarzać, skontaktuj się hello@secani.com ze statusem, kodem, czasem i zredagowaną minimalną reprodukcją.
Udostępniony zestaw narzędzi Secani OSCAL również definiuje ERR_INVALID_XML I ERR_INVALID_YAML. Punkt końcowy weryfikacji HTTP w wersji 1 obsługujący tylko JSON nie emituje tych kodów i obecnie nie akceptuje formatów XML ani YAML.
Zobacz Przewodnik po API, przewodnik po uprawnieniach, i kanoniczne Specyfikacja OpenAPI.