Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Tester REST API

Wysyłaj żądania GET, POST, PUT, DELETE do API bezpośrednio w przeglądarce. Dodawaj nagłówki, body JSON, autoryzację Bearer. Podgląd odpowiedzi. Bezpłatnie.

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}
34 znaków
46 znaków

Status HTTP

200
OK

—

Czas odpowiedzi

44 ms

pełny czas żądania wykonywanego z serwera narzędzia, łącznie z przekierowaniami

Rozmiar odpowiedzi

83 B

liczba bajtów pobranej treści (limit 2 MB)

Finalny URL

https://jsonplaceholder.typicode.com/todos/1

adres po przekierowaniach; przy zmianie hosta tester zdejmuje nagłówki Authorization i Cookie

Żądanie
GET https://jsonplaceholder.typicode.com/todos/1

Odpowiedź
Status: 200
Czas: 44 ms
Rozmiar: 83 B

Nagłówki:
date: Tue, 20 Oct 2026 16:34:41 GMT
content-type: application/json; charset=utf-8
access-control-allow-credentials: true
cache-control: max-age=43200
etag: W/"53-hfEnumeNh6YirfjyjaujcOPPT+s"
expires: -1
pragma: no-cache
vary: Origin, Accept-Encoding
x-content-type-options: nosniff
x-powered-by: Express
x-ratelimit-limit: 3600000
x-ratelimit-remaining: 3599999
x-ratelimit-reset: 1790812826
age: 3
report-to: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=h50MK4upzy0%2FGdqMgRI2wiOqraqFx2MR2123m%2F1CycHn6VM75hPu7yHr%2B%2B3UDo8yXzo5c7ryLMmd25KH0axk%2ByWRBiOZSDRI9jitQasdU3NP3Ft68VcAh5%2B6aXUWw%2FzHaNz27yB%2BXZK5C%2F4OVrhN"}]}
cf-cache-status: HIT
nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
content-encoding: br
server: cloudflare
cf-ray: a4d96e6fabb2db07-FRA
alt-svc: h3=":443"; ma=86400

Treść:
{
    "userId": 1,
    "id": 1,
    "title": "delectus aut autem",
    "completed": false
}
Bezpieczne metody (GET/HEAD/OPTIONS) liczą się przy wpisywaniu; zmieniające dane wykonują się wyłącznie po kliknięciu „Przetwórz”
MetodaDo czego służyWysyła body?Podgląd na żywo
GET Odczyt zasobu Nie Tak — podgląd na żywo przy wpisywaniu
HEAD Jak GET, ale bez treści odpowiedzi (same nagłówki) Nie Tak
OPTIONS Odpytanie o dozwolone metody i politykę CORS Nie Tak
POST Utworzenie zasobu / wykonanie akcji Tak Nie — tylko przycisk „Przetwórz”
PUT Zastąpienie zasobu w całości Tak Nie — tylko przycisk „Przetwórz”
PATCH Częściowa aktualizacja zasobu Tak Nie — tylko przycisk „Przetwórz”
DELETE Usunięcie zasobu Nie Nie — tylko przycisk „Przetwórz”

Autoryzację wysyłasz w nagłówkach — pole „Headers” przyjmuje JSON (np. {"Authorization": "Bearer …", "X-API-Key": "…"}) albo wiersze w formacie „Nazwa: wartość”.

KlasaZnaczenieTypowe kody
1xx Informacyjne Żądanie przyjęte do obróbki (np. 101 Switching Protocols)
2xx Sukces 200 OK, 201 Created, 204 No Content
3xx Przekierowania 301 Moved Permanently, 302 Found, 304 Not Modified — tester podąża za nimi, gdy włączysz „Follow redirects” (limit 5, przy zmianie hosta zdejmuje Authorization i Cookie)
4xx Błąd klienta 400 Bad Request, 401 Unauthorized (brak lub złe poświadczenia), 403 Forbidden (brak uprawnień), 404 Not Found, 429 Too Many Requests (limit zapytań)
5xx Błąd serwera 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable

Warto wiedzieć — REST a bezpieczeństwo

CORS: tester nie symuluje przeglądarki

Polityka same-origin i preflight OPTIONS to mechanizm przeglądarki. Tester odpytuje z serwera, więc pokaże nagłówki Access-Control-Allow-* w odpowiedzi, ale nie odtworzy zachowania przeglądarki. Jeśli w konsoli przeglądarki widzisz błąd CORS, a tester zwraca 200 — problem leży w nagłówkach CORS serwera, nie w samym API.

Klucze API: nagłówki, nie URL

Tokeny i klucze wysyłaj w nagłówkach (Authorization: Bearer …, X-API-Key: …), nigdy w query stringu — adresy lądują w logach serwerów i historii przeglądarki. Do testów używaj kluczy z środowiska testowego i ograniczonych uprawnień; produkcyjnych sekretów nie wklejaj do narzędzi publicznych, a po wycieku rotuj je natychmiast.

SSRF: adresy wewnętrzne są blokowane

Tester blokuje adresy sieci wewnętrznej (localhost, 127.0.0.1, 10.x, 192.168.x, 169.254.x) i niestandardowe porty. To ochrona przed Server-Side Request Forgery — atakiem, w którym publiczne narzędzie robiące żądania „na żądanie użytkownika” wykorzystuje się do skanowania własnej infrastruktury. Błąd 422 przy takim adresie to celowa blokada, nie usterka.

Weryfikacja SSL: wyłączaj tylko na chwilę

Opcja „Verify ssl” pomaga zdiagnozować środowiska z certyfikatem samopodpisanym (np. staging), ale połączenie bez weryfikacji może być przechwycone i zmodyfikowane. W kodzie produkcyjnym nigdy nie wyłączaj weryfikacji TLS. Tester dodatkowo ogranicza odpowiedź do 2 MB i 5 przekierowań, a żądanie przypina do zweryfikowanego adresu IP.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Tester REST API – testuj endpointy HTTP w przeglądarce

REST API tester pozwala wysłać żądania HTTP (GET, POST, PUT, PATCH, DELETE) do dowolnego endpointu i zobaczyć odpowiedź: status code, nagłówki, body JSON/XML. Alternatywa dla Postmana i curl – bez instalacji, bezpośrednio w przeglądarce.

tester REST API online testuj API w przeglądarce HTTP request tester Postman alternatywa online

Metody HTTP i ich zastosowania

GET: pobierz dane (bez side effects). POST: utwórz nowy zasób lub wyślij dane. PUT: zastąp cały zasób. PATCH: częściowa aktualizacja. DELETE: usuń zasób. HEAD: tylko nagłówki (bez body). OPTIONS: sprawdź obsługiwane metody (CORS preflight). CONNECT/TRACE: rzadko używane w REST. Idempotentność: GET, PUT, DELETE = ten sam wynik wielokrotnie.

Nagłówki HTTP w API

Content-Type: application/json (body jest JSON). Accept: application/json (oczekuję JSON). Authorization: Bearer TOKEN (JWT/OAuth). X-API-Key: klucz API. X-Request-ID: UUID żądania do tracingu. Cache-Control: no-cache. User-Agent: identyfikacja klienta. CORS headers: Access-Control-Allow-Origin (serwer → klient).

Kody odpowiedzi HTTP

2xx sukces: 200 OK, 201 Created, 204 No Content. 3xx przekierowania: 301 Moved Permanently, 302 Found, 304 Not Modified. 4xx błędy klienta: 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 422 Unprocessable Entity, 429 Too Many Requests. 5xx błędy serwera: 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable.

REST API vs GraphQL vs gRPC

REST: proste, oparte na zasobach i HTTP. Niezależny od języka. GraphQL: jeden endpoint, klient określa kształt odpowiedzi. Elastyczny, dobre dla złożonych UI. gRPC: Protocol Buffers, szybki, binarny, idealny dla microservices. WebSocket: dwukierunkowy, real-time. Większość publicznych API: REST. Wewnętrzne mikrousługi: gRPC.

Jak działa tester REST API w przeglądarce

Tester REST API nie jest osobnym serwerem pośredniczącym – to interfejs, który składa żądanie HTTP i wysyła je bezpośrednio z Twojej przeglądarki do wskazanego endpointu. W tle działa mechanizm fetch (lub XMLHttpRequest), który przyjmuje cztery elementy wejściowe: metodę, pełny adres URL, zestaw nagłówków oraz opcjonalne body. Serwer widzi więc połączenie z Twojego adresu IP, a nie z serwera webp.pl, i odpowiada dokładnie tak samo, jak odpowiedziałby aplikacji frontendowej.

Zasada jest prosta i dwustronna. Żądanie = metoda + URL + nagłówki + body. Odpowiedź = status code + nagłówki + body. Narzędzie pokazuje surowy wynik: kod odpowiedzi, wszystkie nagłówki zwrócone przez serwer oraz treść w formacie JSON, XML albo czystym tekście. Nie interpretuje danych biznesowych ani nie waliduje ich względem schematu – wyświetla to, co faktycznie przyszło z sieci.

Kluczowy jest podział żądań na proste i nieproste. Gdy używasz metody innej niż GET, HEAD lub POST albo dodajesz własny nagłówek (Authorization, X-API-Key, Content-Type: application/json), przeglądarka najpierw wysyła zapytanie preflight OPTIONS i czeka, aż serwer potwierdzi nagłówkami Access-Control-Allow-Origin, Access-Control-Allow-Methods i Access-Control-Allow-Headers, że taki ruch akceptuje. Dopiero wtedy leci właściwe żądanie. Jeśli serwer nie odpowie na OPTIONS, w testerze zobaczysz błąd sieci lub CORS, a nie kod z API – mimo że endpoint działa poprawnie.

Przykład krok po kroku: dodanie zasobu przez POST

  1. Ustaw metodę na POST i wpisz adres endpointu, np. https://api.twojadomena.pl/v1/users.
  2. Dodaj nagłówki: Content-Type: application/json, Accept: application/json oraz Authorization: Bearer TOKEN z ważnym tokenem.
  3. W polu body wklej JSON z danymi nowego zasobu, np. {"email":"[email protected]","role":"user"}, i upewnij się, że tryb body jest ustawiony na JSON, a nie na formularz.
  4. Wyślij żądanie i sprawdź sam status: 201 Created oznacza, że zasób powstał. W nagłówkach odpowiedzi poszukaj Location – zwykle zawiera URL nowo utworzonego zasobu.
  5. Przejrzyj body odpowiedzi: czy zawiera nadane id oraz pola, których nie wysyłałeś, np. znacznik czasu utworzenia. To pokazuje, co dopisuje serwer.
  6. Powtórz to samo żądanie z błędnym lub zdublowanym e-mailem, aby zobaczyć zachowanie walidacji – typowo 422 Unprocessable Entity albo 400 Bad Request. Na koniec wyślij DELETE na adres zasobu i potwierdź odpowiedź 204 No Content z pustym body.

Tabela referencyjna: co widzisz i co to znaczy

Objaw w testerzePrawdopodobna przyczynaCo zrobić
Brak odpowiedzi, błąd sieci lub CORSSerwer nie zwraca nagłówków CORS dla Twojego origin albo nie obsługuje OPTIONSSprawdź preflight i nagłówki Access-Control-Allow-*; przetestuj z klienta natywnego
401 UnauthorizedBrak tokenu, wygasły JWT lub zły schemat nagłówkaPopraw Authorization: Bearer TOKEN i sprawdź ważność tokenu
403 ForbiddenToken poprawny, ale brak uprawnień do zasobuZweryfikuj rolę lub zakres uprawnień, nie tylko samo uwierzytelnienie
404 Not FoundLiterówka w ścieżce, zmieniony prefiks wersji APIPorównaj URL z dokumentacją, sprawdź /v1, /v2 i końcowe ukośniki
422 Unprocessable EntityJSON poprawny składniowo, ale dane nie przechodzą walidacjiZestaw body z wymaganym schematem: typy, pola wymagane, formaty
429 Too Many RequestsPrzekroczony limit zapytańOdczytaj nagłówek Retry-After i zwolnij tempo testów
502 Bad Gateway lub 503 Service UnavailableProblem infrastruktury po stronie API, nie samego żądaniaPowtórz po chwili i sprawdź status usługi u dostawcy
204 No Content z pustym bodyPrawidłowa odpowiedź na DELETE lub PUTNie parsuj JSON – wystarczy sam status i nagłówki

Praktyczne wskazówki

  • Nie używaj produkcyjnych kluczy API – żądanie wychodzi z Twojej przeglądarki i możesz nieświadomie wykonać realną zmianę danych metodą POST, PUT, PATCH lub DELETE. Testuj na środowisku staging.
  • Rozdzielaj preflight od żądania właściwego – jeśli coś nie działa, najpierw sprawdź, czy serwer odpowiada na OPTIONS i jakie nagłówki zwraca. Dopiero potem diagnozuj body i autoryzację.
  • Czytaj nagłówki odpowiedzi, nie tylko status – Content-Type zdradza format body, X-Request-ID pozwala znaleźć żądanie w logach, a nagłówki limitów mówią, ile zapytań jeszcze zostało.
  • Przenoś udany test do curl – gotowe polecenie łatwo wkleić do skryptu, dokumentacji zespołu albo potoku CI, gdzie tester przeglądarkowy nie ma zastosowania.
  • Trzymaj jeden przypadek na jedno żądanie – osobno testuj sukces, osobno walidację i osobno brak autoryzacji. Łatwiej wtedy ustalić, która zmiana zepsuła wynik.

Czego narzędzie nie zrobi

  • Nie obejdzie CORS – narzędzie działa w Twojej przeglądarce, więc podlega polityce same-origin. Jeśli API nie wysyła nagłówków CORS, żądanie nie dojdzie niezależnie od poprawności danych.
  • Nie ustawi nagłówków zakazanych – przeglądarka blokuje ręczne nadpisywanie m.in. User-Agent, Origin i Host, a Content-Length wylicza sama. Wynik testu nie odzwierciedli tego, co wysłałby klient natywny.
  • Nie obsłuży mTLS i innych protokołów – brak obsługi certyfikatów klienta oraz protokołów takich jak WebSocket czy gRPC. Zakres ogranicza się do klasycznego HTTP i HTTPS.
  • Ma granice rozmiaru i formatu body – bardzo duże payloady oraz wysyłka plików przez multipart/form-data mogą być utrudnione lub niemożliwe, podobnie jak żądania wymagające ciasteczka sesyjnego z innej domeny.

Najczęstsze pytania

Jak testować API z autoryzacją Bearer?

Dodaj nagłówek: Authorization: Bearer eyJhbGciOiJIUzI1NiJ9... Pobranie tokenu: POST /auth/login z {username, password} → response.token. Refresh: POST /auth/refresh z refresh_token. Expiry: sprawdź exp claim w JWT (narzędzie JWT decoder na tej stronie). Basic Auth: Authorization: Basic base64(user:pass).

Jak debugować CORS błędy w API?

Błąd: "Access to fetch at X from origin Y has been blocked by CORS policy". Sprawdź: czy serwer zwraca Access-Control-Allow-Origin: * lub Access-Control-Allow-Origin: twoja-domena. Preflight (OPTIONS): Content-Type: application/json wymaga preflight. Rozwiązanie serwer: dodaj CORS headers. Tymczasowo: CORS proxy lub localhost proxy (Vite, CRA mają proxy config).

Jak wysłać JSON w POST request?

Content-Type: application/json (OBOWIĄZKOWO). Body: {"key": "value", "number": 42}. Curl: curl -X POST URL -H "Content-Type: application/json" -d '{"key":"val"}'. Fetch JS: fetch(URL, {method:"POST", headers:{"Content-Type":"application/json"}, body: JSON.stringify(data)}). Axios: axios.post(URL, data) – automatycznie dodaje Content-Type.

Jak testować API lokalnie?

localhost vs 127.0.0.1: te same (aliasy). HTTPS lokalnie: mkcert (lokalne CA), Vite --https, ngrok (tunel publiczny). Mock API: json-server (npm), WireMock, msw (Mock Service Worker). Postman: kolekcje, środowiska, automated tests. Insomnia: open-source alternative. Bruno: offline-first, pliki kolekcji w git.

Jak rate limiting wpływa na testy API?

429 Too Many Requests: przekroczyłeś limit. Nagłówki: X-RateLimit-Limit (max), X-RateLimit-Remaining (zostało), X-RateLimit-Reset (kiedy reset, Unix timestamp). Retry-After: ile sekund czekać. Exponential backoff: 1s, 2s, 4s, 8s... Testowanie rate limit: sprawdź dokumentację API przed masowymi requestami.

Dlaczego tester REST API pokazuje błąd CORS, choć endpoint działa w Postmanie?

Postman nie stosuje polityki same-origin, a przeglądarka tak. Jeśli API nie zwraca nagłówka Access-Control-Allow-Origin lub nie odpowiada na zapytanie OPTIONS, żądanie z przeglądarki zostanie zablokowane, mimo że sam endpoint działa poprawnie.

Jak wysłać token Bearer w testerze?

Dodaj nagłówek Authorization o wartości Bearer TOKEN, gdzie TOKEN to Twój JWT lub token OAuth. Ponieważ jest to nagłówek niestandardowy, przeglądarka wykona najpierw preflight OPTIONS, więc serwer musi go akceptować.

Czy mogę przetestować endpoint wymagający zalogowania przez ciasteczko sesyjne?

Tylko częściowo. Ciasteczka z innej domeny są dziś blokowane przez przeglądarki, więc najpewniejszym rozwiązaniem jest uwierzytelnianie tokenem w nagłówku Authorization albo praca na endpointach tej samej domeny w kontekście trwającej sesji.

Czy wysyłanie żądań w testerze online jest bezpieczne?

Żądanie wychodzi z Twojej przeglądarki i serwer widzi Twoje IP, więc nie wklejaj kluczy produkcyjnych ani danych osobowych. Pamiętaj też, że POST, PUT, PATCH i DELETE mogą realnie zmienić stan danych na serwerze.

Czy tester obsługuje WebSocket, gRPC albo Server-Sent Events?

Nie. Obsługuje klasyczne żądania HTTP i HTTPS z metodami GET, POST, PUT, PATCH, DELETE, HEAD i OPTIONS. Do protokołów dwukierunkowych i binarnych potrzebny jest osobny klient.

Powiązane narzedzia: analizator JWT, formatowanie JSON i generator naglowkow HTTP.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!