
resterm v1.5.6
HTTP, GraphQL और gRPC के लिए टर्मिनल API क्लाइंट। सरल .http फ़ाइलें जिन्हें आप diff और version कर सकते हैं, साथ ही वर्कफ़्लो, मॉक, प्रोफाइलिंग, ट्रेसिंग, OpenAPI इम्पोर्ट, SSH टनल, Kubernetes पोर्ट-फ़ॉरवर्ड, WebSocket, SSE और CLI रनर की सुविधाएँ।
Resterm
टर्मिनल के लिए एक API-as-code वर्कबेंच।
ट्रेस और टाइमलाइन व्यू
Resterm एक API क्लाइंट है जो अनुरोधों को सादे .http और .rest फ़ाइलों में संग्रहीत करता है, जो आपके बाकी कोड की तरह आपके रेपो में साथ-साथ रह सकती हैं। आप टर्मिनल UI का उपयोग कर सकते हैं, या CI में उन्हीं फ़ाइलों को resterm run के साथ चला सकते हैं।
क्विक लिंक: स्क्रीनशॉट, इंस्टॉल, क्विक स्टार्ट, रिक्वेस्ट फ़ाइलें, डॉक्यूमेंटेशन।
स्क्रीनशॉट
UI को काम करते हुए देखें (विस्तार के लिए क्लिक करें)
वर्कफ़्लो
प्रोफाइलर
एक्सप्लेन
RestermScript
Resterm क्यों
- HTTP, GraphQL, gRPC, WebSocket और SSE समर्थन।
- रिक्वेस्ट फ़ाइलों में ऑटोमेशन: शर्तें (
@when,@if/@elif/@else,@for-each), मल्टी-स्टेप वर्कफ़्लो (@workflow/@step), कैप्चर, वेरिएबल और असर्शन (@capture,@var,@assert)। - रिक्वेस्ट फ़ाइल में टनल:
@sshऔर@k8sकिसी अनुरोध को SSH बास्टियन या Kubernetes पोर्ट-फ़ॉरवर्ड के माध्यम से रूट करते हैं जिसे Resterm आपके लिए खोलता और बंद करता है, प्रति फ़ाइल या वर्कस्पेस प्रोफ़ाइल के साथ। - HTTP ट्रैफ़िक रिकॉर्ड करें और इसे Resterm
.httpफ़ाइलों में अनुरोधों या मॉक रिस्पॉन्स के रूप में एक्सपोर्ट करें। - RestermScript, Resterm के लिए बनाई गई एक छोटी एक्सप्रेशन लैंग्वेज, जिसमें आप चाहें तो JavaScript हुक भी हैं।
- Vim-जैसे कंट्रोल शॉर्टकट संकेतों, खोजने योग्य ऑफ़लाइन सहायता, कर्सर के नीचे
Shift+kसहायता,/खोज और:w,:q,:helpऔर:docsजैसे कमांड के साथ। - Auth: OAuth 2.0 (क्लाइंट क्रेडेंशियल्स, पासवर्ड, PKCE के साथ ऑथराइज़ेशन कोड) और
@auth commandताकि आपके पहले से इंस्टॉल किए गए CLI से टोकन का पुन: उपयोग किया जा सके, जैसेgh auth token। - CLI रनर: स्क्रिप्टेड रन और CI के लिए
resterm run, JSON और JUnit आउटपुट के साथ। - मॉक सर्वर उन अनुरोधों के बगल में घोषित जिनकी वे नकल करते हैं, मैचिंग नियमों, सीक्वेंस, कॉल वेरिफिकेशन और हॉट रीलोड के साथ।
- टाइमलाइन ट्रेसिंग, प्रोफाइलिंग और एनवायरनमेंट्स में रन की तुलना।
- स्ट्रीमिंग ट्रांसक्रिप्ट और WebSocket और SSE के लिए एक इंटरैक्टिव कंसोल।
- कोई AI इंटीग्रेशन नहीं
इंस्टॉल
macOS और Linux:
brew install resterm
# or
curl -fsSL https://raw.githubusercontent.com/unkn0wn-root/resterm/main/install.sh | bash
Windows:
iwr -useb https://raw.githubusercontent.com/unkn0wn-root/resterm/main/install.ps1 | iex
सोर्स से, Go 1.25 या नए के साथ:
go install github.com/unkn0wn-root/resterm/cmd/resterm@latest
[!IMPORTANT] प्रीबिल्ट Linux बाइनरीज़ glibc 2.32 या नए पर निर्भर करती हैं। पुराने डिस्ट्रो पर, रिलीज़ आर्काइव का उपयोग करने से पहले नए glibc टूलचेन के साथ सोर्स से बिल्ड करें या glibc अपग्रेड करें।
Homebrew इंस्टॉल को brew upgrade resterm से अपडेट किया जाता है। रिलीज़ पेज या इंस्टॉल स्क्रिप्ट से मिली बाइनरीज़ resterm --check-update और resterm --update का उपयोग करती हैं, जो डाउनलोड, सत्यापन और इन-प्लेस इंस्टॉल करता है। Windows पर पुरानी बाइनरी नई के बगल में resterm.exe.old के रूप में रहती है और अगले अपडेट पर साफ़ कर दी जाती है।
मैनुअल इंस्टॉल
macOS, Linux और Windows (amd64 और arm64) के लिए बाइनरीज़ रिलीज़ पेज पर हैं। नीचे दिए गए कमांड वही करते हैं जो रिलीज़ पेज से मैनुअल डाउनलोड करने पर होता है। Unix संस्करण को curl और jq चाहिए।
# Find the latest release tag
LATEST_TAG=$(curl -fsSL https://api.github.com/repos/unkn0wn-root/resterm/releases/latest | jq -r .tag_name)
# Download the matching binary (Darwin/Linux + amd64/arm64)
curl -fL -o resterm "https://github.com/unkn0wn-root/resterm/releases/download/${LATEST_TAG}/resterm_$(uname -s)_$(uname -m)"
# Install on PATH
chmod +x resterm
sudo install -m 0755 resterm /usr/local/bin/resterm
$latest = Invoke-RestMethod https://api.github.com/repos/unkn0wn-root/resterm/releases/latest
$asset = $latest.assets | Where-Object { $_.name -like 'resterm_Windows_*' } | Select-Object -First 1
Invoke-WebRequest -Uri $asset.browser_download_url -OutFile resterm.exe
# Optionally move to a directory on PATH:
Move-Item resterm.exe "$env:USERPROFILE\bin\resterm.exe"
क्विक स्टार्ट
mkdir my-api && cd my-api
resterm init
resterm
resterm init एक छोटा प्रोजेक्ट बनाता है जिसे आप तुरंत उपयोग करना शुरू कर सकते हैं। जनरेट की गई requests.http में लोकल मॉक सिनेरियो और कुछ अनुरोध हैं जो एक-दूसरे पर बने हैं, जो असर्शन, बियरर ऑथ, JSON मैचिंग, json-rules और @for-each को कवर करते हैं। मॉक सर्वर शुरू करने के लिए g Shift+m दबाएँ, फिर कर्सर के नीचे के अनुरोध को भेजने के लिए Ctrl+Enter दबाएँ।
आप init के बिना भी सीधे Resterm खोल सकते हैं। resterm चलाएँ, एक URL टाइप करें और Ctrl+Enter दबाएँ। आप curl कमांड भी पेस्ट कर सकते हैं - वह भी काम करता है।
वही फ़ाइल TUI के बिना चलती है:
resterm run --request CreateUser requests.http
रिक्वेस्ट फ़ाइलें
Resterm मानक HTTP सिंटैक्स का समर्थन करता है, लेकिन यह कॉन्फ़िगरेशन और ऑटोमेशन के लिए # @ डायरेक्टिव्स के साथ उससे बहुत आगे जाता है:
# @setting base-url https://api.example.com/v1/
### Create users
// Send this request once for each name in the list.
# @for-each ["david", "tom"] as name
# @when env.mode == "development"
# @assert response.statusCode == 201
POST users
Content-Type: application/json
{"name":"{{= name }}"}
पहले अनुरोध से पहले @setting रखने पर यह पूरी फ़ाइल पर लागू होता है। ### एक नया अनुरोध शुरू करता है, और डायरेक्टिव्स अपने नीचे के अनुरोध को दोहरा सकते हैं, सीमित कर सकते हैं या जाँच सकते हैं। अधिक जानकारी _examples/ और डायरेक्टिव रेफ़रेंस में।
मॉक सर्वर
मॉक रिस्पॉन्स उन्हीं फ़ाइलों में परिभाषित होते हैं जिनमें अनुरोध होते हैं (लेकिन ऐसा होना ज़रूरी नहीं है)। उदाहरण, एक रूट पर दो सिनेरियो:
### Payment accepted
# @mock method=POST path=/payments name=accepted default=true latency=150ms
HTTP/1.1 202 Accepted
Content-Type: application/json
{"id":"pay_123","status":"pending"}
### Payment declined
# @mock method=POST path=/payments name=declined
# @match query={"mode":"decline"} headers={"X-Tenant":"demo"} json={"amount":0}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
{"error":"amount must be positive"}
एक फ़ाइल या पूरी डायरेक्टरी सर्व करें:
resterm mock ./requests.http
resterm mock --recursive --addr 127.0.0.1:9090 ./requests
query, headers और body पर मैचिंग, पोलिंग टेस्ट के लिए रिस्पॉन्स सीक्वेंस, कॉल वेरिफिकेशन और हॉट रीलोड को मॉक सर्वर रेफ़रेंस में कवर किया गया है। काम करने वाला उदाहरण: _examples/mocks.http।
ट्रैफ़िक रिकॉर्ड करना
आप अपने एप्लिकेशन को Resterm प्रॉक्सी के माध्यम से रूट कर सकते हैं और यह ट्रैफ़िक को Resterm .http फ़ाइल में अनुरोधों, मॉक या दोनों के रूप में कैप्चर करता है।
resterm record --upstream https://api.example.com --out captured.http --mode both
अपने एप्लिकेशन का API बेस URL http://127.0.0.1:9000 पर पॉइंट करें, फिर Ctrl+C से रिकॉर्डिंग बंद करें। TUI :record start --upstream <origin> के साथ वही करता है, साथ ही :record as-request और :record as-mock से कैप्चर को खुली फ़ाइल में डाल सकते हैं।
अधिक जानकारी रिकॉर्डिंग रेफ़रेंस में।
अधिक
| क्षेत्र | डॉक्स |
|---|---|
| ऑटोमेशन | वर्कफ़्लो, पोलिंग और रिट्रीज़, रन की तुलना, टाइमलाइन और ट्रेसिंग, प्रोफाइलिंग |
| ट्रांसपोर्ट | gRPC, GraphQL, WebSocket और SSE |
| Auth और कनेक्टिविटी | OAuth 2.0, अपने CLI से auth, SSH टनल, Kubernetes पोर्ट-फ़ॉरवर्ड |
| स्क्रिप्टिंग | RestermScript, JavaScript हुक, हेडलेस Go API, resterm-runner |
| इन और आउट | curl इम्पोर्ट, OpenAPI इम्पोर्ट, कलेक्शन शेयरिंग, रिस्पॉन्स हिस्ट्री और डिफिंग |
| सेटअप | एनवायरनमेंट और वेरिएबल, कॉन्फ़िगरेशन, थीम, की बाइंडिंग |
कीज़
सामान्य Resterm सहायता के लिए ? दबाएँ और कर्सर के नीचे जो भी है उस पर सहायता के लिए Shift+k दबाएँ। पूरी तालिका UI टूर में है। क्विक स्टार्ट के लिए, आपको केवल इतना चाहिए:
Ctrl+Enterअनुरोध भेजता हैTab/Shift+Tabपैन बदलता हैg pरिस्पॉन्स पर जाता है
डॉक्यूमेंटेशन
docs/resterm.mdरिक्वेस्ट सिंटैक्स, डायरेक्टिव्स, स्क्रिप्टिंग और ट्रांसपोर्ट को कवर करता है।docs/cli.mdresterm run, इम्पोर्टर्स, कलेक्शन और हिस्ट्री को कवर करता है।docs/restermscript.mdRestermScript रेफ़रेंस है।- कम्पैटिबिलिटी बताता है कि v1 तक क्या स्थिर रहता है।
TUI के अंदर, :help <topic> एम्बेडेड मैनुअल खोलता है और :docs <topic> इंस्टॉल किए गए रिलीज़ के लिए वेब कॉपी खोलता है।