API public

API JSON pentru suita NIST SP 800-22. Toate cele 15 teste folosesc același contract, testul fiind selectat prin slug-ul din cale. Adresa de bază: https://prng-nist-tests.student-dev.ro/api (local: http://localhost:3000/api).

Acces și limite

POST /api/assess și GET /api/sequence necesită un API key transmis prin antetul X-API-Key sau parametrul ?api_key=. Fără cheie validă se returnează 401.

Toate endpoint-urile sunt supuse limitelor de rată (fereastră glisantă de 30 de zile); depășirea returnează 429 cu Retry-After. Configurația curentă: GET /api/health.

POST/api/run/{test}

Rulează un test pe o secvență de biți. Slug-urile sunt în tabelul de mai jos.

{
  "bits": "1100100100...",
  "alpha": 0.01,
  "block": 10,
  "method": "auto"
}

Câmpurile răspunsului și parametrii per test: tabelul de mai jos. Coduri: 400, 404, 429, 500/504.

SlugSecțiuneCâmp suplimentar în răspuns
monobit§2.1Răspuns standard: n, p_value, statistic, critical, distribution.
block-frequency§2.2Acceptă parametrul `block`; răspuns standard.
runs§2.3Răspuns standard: n, p_value, statistic, critical, distribution.
longest-run§2.4Răspuns standard: n, p_value, statistic, critical, distribution.
rank§2.5Răspuns standard: n, p_value, statistic, critical, distribution.
dft§2.6Adaugă `spectrum[]` (până la ~4000 de puncte) plus stats cu N1/N0/d/threshold.
non-overlapping§2.7Acceptă parametrul `block`; răspuns standard.
overlapping§2.8Răspuns standard: n, p_value, statistic, critical, distribution.
universal§2.9Răspuns standard: n, p_value, statistic, critical, distribution.
linear-complexity§2.10Acceptă parametrul `block`; răspuns standard.
serial§2.11Acceptă `block` (m); întoarce două p-values în stats.
approx-entropy§2.12Acceptă parametrul `block`; răspuns standard.
cusum§2.13Răspuns standard: n, p_value, statistic, critical, distribution.
random-excursions§2.14Adaugă `p_values[]` pentru 8 stări (x = -4..-1, 1..4) plus stats.J.
random-excursions-variant§2.15Adaugă `p_values[]` pentru 18 stări (x = -9..-1, 1..9) plus stats.J.
POST/api/assess/{test}

Analiză pe fluxuri multiple (proporție + uniformitate) peste fișierele NIST. Necesită X-API-Key.

{
  "files": ["data.pi", "data.e"],
  "length": 10000,
  "maxStreams": 0,
  "alpha": 0.01, "block": 10
}
GET/api/sequence?file=&offset=&len=

Felie dintr-un fișier NIST (max 65536 biți). Necesită X-API-Key.

GET/api/health

Stare + capabilități: binare, limite de trafic, catalog de teste. Fără limită de rată.