
resterm v1.5.6
HTTP, GraphQL और gRPC के लिए टर्मिनल API क्लाइंट। सरल .http फ़ाइलें जिन्हें आप diff और version कर सकते हैं, साथ ही वर्कफ़्लो, मॉक, प्रोफाइलिंग, ट्रेसिंग, OpenAPI इम्पोर्ट, SSH टनल, Kubernetes पोर्ट-फ़ॉरवर्ड, WebSocket, SSE और CLI रनर की सुविधाएँ।
Resterm
REST, GraphQL, gRPC, WebSocket और SSE के लिए एक टर्मिनल-आधारित API क्लाइंट और वर्कबेंच।
Resterm एक API-as-code वर्कबेंच है - या, अधिक परिचित शब्दों में, एक API क्लाइंट - जो सादे .http और .rest फ़ाइलों के इर्द-गिर्द बनाया गया है, जिन्हें आप diff, review और version कर सकते हैं। यह इंटरैक्टिव रिक्वेस्ट एडिटिंग को डिक्लेरेटिव वर्कफ़्लो, एसर्शन, मॉक सर्वर, ट्रेसिंग, प्रोफाइलिंग और हेडलेस ऑटोमेशन के साथ जोड़ता है। सब कुछ आपकी मशीन पर ही रहता है। कोई अकाउंट नहीं, कोई क्लाउड सिंक नहीं, कोई टेलीमेट्री नहीं।
यदि आप GUI कलेक्शन पर केंद्रित Postman-शैली के क्लाइंट की तलाश में हैं, तो Resterm शायद आपके लिए नहीं है, लेकिन फिर भी इसे एक बार आज़माएँ!
[!NOTE] Resterm अब v1 है! नई सुविधाओं और ब्रेकिंग चेंजेस के लिए v1.0.0 release notes देखें।
क्विक लिंक: Screenshots, Quick Start, Request files, Installation, Documentation.
Screenshot tour
UI को एक्शन में देखें (विस्तार के लिए क्लिक करें)
Workflows
Trace and Timeline
Profiler
Explain
RestermScript
Light Theme
OAuth ब्राउज़र डेमो (पुराना UI डिज़ाइन)
Resterm क्यों
- HTTP, GraphQL, gRPC, WebSocket और SSE बॉक्स से बाहर उपलब्ध।
- ऑटोमेशन रिक्वेस्ट फ़ाइलों में ही रहता है: शर्तें (
@when,@if/@elif/@else,@for-each), मल्टी-स्टेप वर्कफ़्लो (@workflow/@step), कैप्चर, वेरिएबल और एसर्शन (@capture,@var,@assert)। - RestermScript, Resterm के लिए बनाई गई एक छोटी एक्सप्रेशन भाषा, जिसमें जब चाहें JavaScript हुक उपलब्ध हैं।
- Vim-शैली के नियंत्रण संदर्भ-आधारित बॉटम बार संकेतों, खोजने योग्य ऑफ़लाइन सहायता, कर्सर के नीचे
Kसहायता,/खोज और:w,:q,:helpऔर:docsजैसे कमांड के साथ। - बिल्ट-इन auth और टनलिंग: OAuth 2.0 (client credentials, password, PKCE के साथ auth code), आपके मौजूदा CLI द्वारा समर्थित auth, SSH टनल और Kubernetes port-forwards। कोई अतिरिक्त टूल आवश्यक नहीं।
- CLI रनर: स्क्रिप्टेड रन और CI के लिए
resterm run, JSON और JUnit आउटपुट के साथ। - मॉक सर्वर उन रिक्वेस्ट के बगल में घोषित किए जाते हैं जिनकी वे नकल करते हैं, मैचिंग नियमों, सीक्वेंस, कॉल सत्यापन और हॉट रीलोड के साथ।
- टाइमलाइन ट्रेसिंग, प्रोफाइलिंग और तुलना रन विभिन्न एनवायरनमेंट्स में।
- स्ट्रीमिंग ट्रांसक्रिप्ट और WebSocket और SSE के लिए एक इंटरैक्टिव कंसोल।
- कोई AI एकीकरण नहीं, कभी नहीं।
Quick Start
- Resterm इंस्टॉल करें (स्क्रिप्ट, Windows और मैनुअल इंस्टॉल के लिए Installation देखें)। ```bash
brew install resterm
- एक कार्यक्षेत्र बूटस्ट्रैप करें। ```bash
mkdir my-api && cd my-api
resterm init
resterm init आपको एक छोटा प्रोजेक्ट देता है जो इंटरनेट कनेक्शन के बिना काम करता है। जनरेट किया गया requests.http स्थानीय मॉक परिदृश्यों और कुछ अनुरोधों को शामिल करता है जो एक-दूसरे पर आधारित होते हैं। वे एसर्शन, बियरर ऑथ, JSON मैचिंग, json-rules, और @for-each को कवर करते हैं।
- इसे शुरू करें और अपना पहला अनुरोध भेजें। ```bash
resterm
एडिटर में हाइलाइट किए गए अनुरोध को भेजने के लिए Ctrl+Enter दबाएँ।
अभी तक कोई फ़ाइल नहीं है? बस resterm चलाएँ, एक URL टाइप करें और Ctrl+Enter दबाएँ। पेस्ट किया गया curl कमांड भी काम करता है।
अनुरोध फ़ाइलें
Resterm अनुरोध फ़ाइलें मानक HTTP सिंटैक्स के साथ-साथ कॉन्फ़िगरेशन और स्वचालन के लिए # @ निर्देशों का उपयोग करती हैं:```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 }}"}
सेटिंग्स पहले अनुरोध से पहले पूरी फ़ाइल पर लागू होती हैं, `###` अनुरोधों को अलग करता है, और निर्देश किसी अनुरोध को दोहरा, सीमित या मान्य कर सकते हैं। अधिक उदाहरण यहाँ: [`_examples/`](https://github.com/unkn0wn-root/resterm/blob/main/_examples)।
## CLI
`resterm run` TUI खोले बिना `.http` / `.rest` फ़ाइलों को निष्पादित करता है, जो CI चलाता है।```bash
resterm run --request CreateUser requests.http
उत्पन्न प्रोजेक्ट एक स्थानीय मॉक सर्वर से बात करता है। इसे पहले किसी अन्य टर्मिनल में शुरू करें:```bash resterm mock requests.http
TUI में, उसी मॉक सर्वर को वर्कस्पेस से शुरू करने के लिए `g Shift+M` दबाएँ।
[CLI दस्तावेज़](https://github.com/unkn0wn-root/resterm/blob/main/docs/cli.md) में सेलेक्टर, आउटपुट फॉर्मेट और अधिक उदाहरण शामिल हैं।
## कीबोर्ड चीट शीट
- पेन फोकस और लेआउट
- `Tab` / `Shift+Tab`: साइडबार, एडिटर और रिस्पॉन्स के बीच जाएँ।
- `g+r`, `g+i`, `g+p`: रिक्वेस्ट, एडिटर या रिस्पॉन्स पर जाएँ।
- `g+h` / `g+l`: क्षैतिज रूप से आकार बदलें। साइडबार फोकस होने पर साइडबार की चौड़ाई बदलती है, अन्यथा एडिटर/रिस्पॉन्स स्प्लिट।
- `g+j` / `g+k`: स्टैक्ड होने पर एडिटर/रिस्पॉन्स की ऊँचाई बदलें, नेविगेटर में ब्रांच को संक्षिप्त या विस्तारित करें।
- `g+v` / `g+s`: रिस्पॉन्स पेन को इनलाइन और स्टैक्ड लेआउट के बीच टॉगल करें।
- `g+1`, `g+2`, `g+3`: साइडबार, एडिटर, रिस्पॉन्स को छोटा करें या पुनर्स्थापित करें।
- `g+z` / `g+Z`: फोकस किए गए पेन को ज़ूम करें, ज़ूम साफ़ करें।
- एनवायरनमेंट और ग्लोबल्स
- `Ctrl+E`: एनवायरनमेंट स्विच करें।
- `Ctrl+G`: कैप्चर किए गए ग्लोबल्स की जाँच करें।
- सहायता और कमांड
- `?`: खोजने योग्य ऑफ़लाइन सहायता इंडेक्स खोलें।
- `K` (एडिटर नॉर्मल मोड): कर्सर के नीचे डायरेक्टिव, टेम्पलेट या कीवर्ड के लिए सहायता खोलें।
- `:help <topic>` / `:man <topic>`: एक एम्बेडेड टॉपिक खोलें; `:docs <topic>` संस्करण-मिलान वाला पूर्ण मैनुअल खोलता है।
- `Ctrl+O`: फ़ाइल/वर्कस्पेस पॉपअप खोलें। फ़िल्टर करने के लिए टाइप करें, `Up` / `Down` से स्क्रॉल करें, और डायरेक्टरी में जाने के लिए `Tab` का उपयोग करें।
- `:`: कमांड लाइन खोलें। सुझाव चुनने के लिए `Up` / `Down` का उपयोग करें, एक को पूरा करने के लिए `Tab`, या चयन को स्वीकार और चलाने के लिए `Enter` दबाएँ। `:mock start --source` और `:edit` जैसे पाथ आर्गुमेंट उसी पॉपअप में फाइलसिस्टम ब्राउज़ करते हैं।
- रिस्पॉन्स
- `Ctrl+V` / `Ctrl+U`: साइड-बाय-साइड तुलना के लिए रिस्पॉन्स पेन को विभाजित करें।
- `Ctrl+Shift+C` या `g y` (रिस्पॉन्स फोकस्ड): पूरा Pretty, Raw या Headers टैब कॉपी करें।
- `g x`: सक्रिय रिक्वेस्ट को भेजे बिना उसका Explain प्रीव्यू दिखाएँ।
- `g e`: वर्तमान फ़ाइल को अपने बाहरी एडिटर में खोलें।
> [!TIP]
> यदि आपको केवल तीन शॉर्टकट याद हैं:
> - `Ctrl+Enter` रिक्वेस्ट भेजता है
> - `Tab` / `Shift+Tab` पेन स्विच करता है
> - `g+p` रिस्पॉन्स पर जाता है
## इंस्टॉलेशन
**Linux / macOS (Homebrew)**```bash
brew install resterm
[!NOTE] Homebrew इंस्टॉल को Homebrew (
brew upgrade resterm) के साथ अपडेट किया जाना चाहिए। बिल्ट-इनresterm --updateकमांड GitHub रिलीज़ या इंस्टॉल स्क्रिप्ट से इंस्टॉल किए गए बाइनरी के लिए है।
Linux / macOS (शेल स्क्रिप्ट)
[!IMPORTANT] प्री-बिल्ट Linux बाइनरी glibc 2.32 या उससे नए पर निर्भर करती हैं। पुराने डिस्ट्रो पर, नए glibc टूलचेन के साथ स्रोत से बिल्ड करें या रिलीज़ आर्काइव का उपयोग करने से पहले glibc को अपग्रेड करें।```bash curl -fsSL https://raw.githubusercontent.com/unkn0wn-root/resterm/main/install.sh | bash
or `wget` के साथ:```bash
wget -qO- https://raw.githubusercontent.com/unkn0wn-root/resterm/main/install.sh | bash
विंडोज़ (PowerShell)```powershell iwr -useb https://raw.githubusercontent.com/unkn0wn-root/resterm/main/install.ps1 | iex
स्क्रिप्ट्स आपके आर्किटेक्चर का पता लगाती हैं, नवीनतम रिलीज़ डाउनलोड करती हैं और बाइनरी इंस्टॉल करती हैं।
### मैन्युअल इंस्टॉलेशन
> [!NOTE]
> मैन्युअल इंस्टॉल हेल्पर `curl` और `jq` का उपयोग करता है। अपने पैकेज मैनेजर से `jq` इंस्टॉल करें (`brew install jq`, `sudo apt install jq`, आदि)।
**Linux / macOS**```bash
# Detect latest 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)"
# Make it executable and move it onto your PATH
chmod +x resterm
sudo install -m 0755 resterm /usr/local/bin/resterm
विंडोज़ (PowerShell)```powershell $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 relocate to a directory on PATH, e.g.:
Move-Item resterm.exe "$env:USERPROFILE\bin\resterm.exe"
### स्रोत से```bash
go install github.com/unkn0wn-root/resterm/cmd/resterm@latest
अपडेट```bash
resterm --check-update resterm --update
पहला कमांड बताता है कि कोई नया रिलीज़ उपलब्ध है या नहीं। दूसरा उसे डाउनलोड करता है, सत्यापित करता है और उसी स्थान पर इंस्टॉल करता है। Windows पर पुराना बाइनरी नए के बगल में `resterm.exe.old` के रूप में रहता है और अगले अपडेट पर साफ़ कर दिया जाता है।
## कॉन्फ़िगरेशन
- एनवायरनमेंट JSON फ़ाइलें (`resterm.env.json`) होती हैं जो अनुरोध निर्देशिका, वर्कस्पेस रूट या CWD में खोजी जाती हैं। एक फ़ाइल नामित एनवायरनमेंट या स्वतंत्र समूहों को परिभाषित कर सकती है, उदाहरण के लिए api, app, और credentials, जो एक एनवायरनमेंट में संयोजित होते हैं। Dotenv फ़ाइलें (`.env`, `.env.*`) `--env-file` के माध्यम से ऑप्ट-इन होती हैं और एकल-वर्कस्पेस होती हैं। [समूहित एनवायरनमेंट](https://github.com/unkn0wn-root/resterm/blob/main/docs/resterm.md#grouped-environments) और `_examples/grouped/` में चलने योग्य नमूना देखें।
- कॉन्फ़िग OS के अनुसार संग्रहीत होता है और इसे `RESTERM_CONFIG_DIR` से ओवरराइड किया जा सकता है:
- macOS: `~/Library/Application Support/resterm`
- Windows: `%APPDATA%\resterm`
- Linux/Unix: `~/.config/resterm`
## मॉक सर्वर
आप अपने अनुरोधों के समान `.http` फ़ाइलों में मॉक प्रतिक्रियाएँ परिभाषित कर सकते हैं।
- क्वेरी, हेडर या JSON बॉडी द्वारा आने वाले अनुरोधों का मिलान करें, फिर एक नामित या डिफ़ॉल्ट प्रतिक्रिया चुनें।
- पोलिंग और रीट्राय परीक्षणों के लिए प्रतिक्रियाओं का एक क्रम लौटाएँ। प्रत्येक क्रम को अलग से ट्रैक करने के लिए पथ, क्वेरी, हेडर या कुकी मान का उपयोग करें।
- प्रतिक्रियाओं को एक निश्चित राशि से विलंबित करें, या `random`, `normal`, या `jitter` के साथ हर अनुरोध को एक अलग विलंब दें।
- पथ, क्वेरी, हेडर और बॉडी मानों से प्रतिक्रियाएँ बनाएँ, गतिशील डेटा के लिए जनरेटर के साथ।
- `@expect` के साथ कॉल गणनाओं को सत्यापित करें या RestermScript से प्राप्त ट्रैफ़िक का निरीक्षण करें।
- स्रोत फ़ाइलों और फिक्स्चर को हॉट रीलोड करें, वैकल्पिक TLS के साथ।
एक रूट पर दो परिदृश्य:```http
### 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"}
एक फ़ाइल या पूरी निर्देशिका परोसें:```bash resterm mock ./requests.http resterm mock --recursive --addr 127.0.0.1:9090 ./requests
[मॉक सर्वर संदर्भ](https://github.com/unkn0wn-root/resterm/blob/main/docs/resterm.md#mock-servers), [`resterm mock` CLI गाइड](https://github.com/unkn0wn-root/resterm/blob/main/docs/cli.md#resterm-mock) और [कार्यशील उदाहरण](https://github.com/unkn0wn-root/resterm/blob/main/_examples/mocks.http) में अधिक जानकारी देखें।
## हेडलेस
[`headless`](https://github.com/unkn0wn-root/resterm/blob/main/headless) पैकेज उसी इंजन के लिए सार्वजनिक Go API है जो TUI और CLI को शक्ति प्रदान करता है। इसका उपयोग अपने स्वयं के Go कोड या CI से अनुरोध, वर्कफ़्लो, अभिकथन चलाने, रन और प्रोफ़ाइल की तुलना करने के लिए करें।
यदि आप स्वयं रनर नहीं बनाना चाहते हैं, तो [resterm-runner](https://github.com/unkn0wn-root/resterm-runner) उपलब्ध है।
## संग्रह
किसी वर्कस्पेस को Git-अनुकूल बंडल के रूप में निर्यात करें और इसे किसी अन्य में आयात करें। बंडल चेकसम के साथ `manifest.json` ले जाते हैं, इसलिए आयात पहले फ़ाइल अखंडता की पुष्टि करते हैं। पर्यावरण मान `REPLACE_ME` प्लेसहोल्डर के रूप में निर्यात किए जाते हैं, ताकि रहस्य कभी भी आपकी मशीन से बाहर न जाएं।```bash
resterm collection export --workspace ./my-api --out ./shared/my-api-bundle
resterm collection import --in ./shared/my-api-bundle --workspace ./my-local-api
--dry-run जोड़कर इम्पोर्ट का पूर्वावलोकन करें और --force से मौजूदा फ़ाइलों को ओवरराइट करें। दस्तावेज़: collection sharing।
Curl इम्पोर्ट
एडिटर में एक curl कमांड पेस्ट करें और उसे एक संरचित रिक्वेस्ट में बदलने के लिए Ctrl+Enter दबाएँ। Resterm सामान्य फ़्लैग्स को समझता है, बार-बार आने वाले डेटा सेगमेंट को मर्ज करता है और multipart अपलोड को बरकरार रखता है। sudo या $ जैसे शेल प्रीफ़िक्स को अनदेखा किया जाता है। CLI --from-curl के साथ वही रूपांतरण करता है।
यह:```bash
curl -X POST https://api.example.com/login
-H "Content-Type: application/json"
--user demo:secret
-d '{"user":"demo"}'
बन जाता है यह:```http
### POST https://api.example.com/login
# @auth basic demo secret
POST https://api.example.com/login
Content-Type: application/json
{"user":"demo"}
Docs: inline requests और import examples।
RestermScript
RestermScript (RTS) एक छोटी अभिव्यक्ति भाषा है जो Resterm के लिए बनाई गई है। यह सीधे request format, workflows और directives को लक्षित करती है, जिससे स्क्रिप्ट छोटी और अनुमानित रहती हैं। JavaScript hooks तब भी उपलब्ध रहते हैं जब आपको अधिक की आवश्यकता हो।
त्वरित उदाहरण (RTS मॉड्यूल + request):```rts // rts/helpers.rts module helpers export fn authHeader(token) { return token ? "Bearer " + token : "" }
मैं समझता हूँ कि आपने मुझे एक अनुवाद कार्य दिया है, लेकिन आपने वास्तविक इनपुट सामग्री (चंक 41/63 का README टेक्स्ट) प्रदान नहीं किया है। आपका संदेश केवल निर्देशों से भरा है, जिसमें "INPUT:" के बाद कोई सामग्री नहीं है।
कृपया वह Markdown सामग्री प्रदान करें जिसे आप अनुवाद करना चाहते हैं, और मैं आपके सभी नियमों का पालन करते हुए उसका अंग्रेज़ी से हिंदी में अनुवाद कर दूँगा।```http
# @use ./rts/helpers.rts
# @when env.has("feature")
# @assert response.statusCode == 200
GET https://api.example.com/users/{{= vars.get("user") }}
Authorization: {{= helpers.authHeader(vars.get("auth.token")) }}
Full reference: docs/restermscript.md.
गहन अध्ययन
OAuth 2.0
टोकन प्राप्त करने और इंजेक्ट करने के लिए @auth oauth2 का उपयोग करें। टोकन प्रति वातावरण कैश किए जाते हैं और संभव होने पर रीफ्रेश किए जाते हैं। क्लाइंट क्रेडेंशियल ग्रांट डिफ़ॉल्ट है। पासवर्ड ग्रांट और PKCE के साथ ऑथराइज़ेशन कोड भी समर्थित हैं:```http
Service status
@auth oauth2 token_url={{oauth.tokenUrl}} client_id={{oauth.clientId}} client_secret={{oauth.clientSecret}} cache_key=my-api
GET {{base.url}}/anything/projects
उदाहरण: [`_examples/oauth2.http`](https://github.com/unkn0wn-root/resterm/blob/main/_examples/oauth2.http)। [OAuth 2.0 दस्तावेज़ीकरण](https://github.com/unkn0wn-root/resterm/blob/main/docs/resterm.md#oauth-20-directive) देखें।
### वर्कफ़्लो और स्क्रिप्टिंग
वर्कफ़्लो नामित अनुरोधों को श्रृंखलाबद्ध करते हैं और किसी प्रतिक्रिया से अगला चरण चुन सकते हैं:```http
### Sign in
# @workflow sign-in
# @step Login using=Login
// GetProfile and RefreshToken are request names.
// The first true condition runs the named request.
# @if last.statusCode == 200 run=GetProfile
# @elif last.statusCode == 401 run=RefreshToken
# @else fail="unexpected login response"
वे चरणों के बीच डेटा भी पास कर सकते हैं और RestermScript या JavaScript हुक चला सकते हैं। उदाहरण: _examples/workflows.http। वर्कफ़्लो दस्तावेज़ देखें।
पोलिंग और पुनः प्रयास
किसी अनुरोध को तब तक दोहराने के लिए @poll का उपयोग करें जब तक कि कोई प्रतिक्रिया स्थिति सत्य न हो जाए। नेटवर्क विफलताओं, टाइमआउट या चयनित प्रतिक्रियाओं को एक्सपोनेंशियल बैकऑफ़ के साथ पुनः प्रयास करने के लिए @retry जोड़ें:```http
Wait for job
@retry count=4
@retry-when response.statusCode in [429, 502, 503]
@retry-backoff exponential(100ms, 2s) jitter=20%
@poll every=500ms timeout=30s until=response.json().status == "completed"
GET {{base.url}}/jobs/{{job.id}}
प्रत्येक पोलिंग चक्र को अपना स्वयं का रीट्राई बजट मिलता है। उदाहरण: [`_examples/polling-retries.http`](https://github.com/unkn0wn-root/resterm/blob/main/_examples/polling-retries.http)। [पोलिंग और रीट्राई दस्तावेज़](https://github.com/unkn0wn-root/resterm/blob/main/docs/resterm.md#polling-and-retries) देखें।
### रनों की तुलना करें
`@compare` कम से कम दो वातावरणों के विरुद्ध एक अनुरोध चलाता है और एक परिणाम को आधार रेखा के रूप में उपयोग करता है:```http
### Compare health
# @compare dev stage prod base=prod
GET {{services.api.base}}/status
g+c दबाकर इसे TUI में चलाएँ, या कमांड लाइन पर --compare प्रदान करें। उदाहरण: _examples/compare.http। compare दस्तावेज़ीकरण देखें।
ट्रेसिंग और टाइमलाइन
@trace HTTP चरणों को रिकॉर्ड करता है और उन अनुरोधों को चिह्नित कर सकता है जो विलंबता बजट से अधिक हैं:```http
Trace API
@trace dns<=50ms connect<=120ms total<=400ms tolerance=25ms
GET https://api.example.com/health
परिणाम Timeline टैब में दिखाई देते हैं और इन्हें OpenTelemetry में निर्यात किया जा सकता है। उदाहरण: [`_examples/trace.http`](https://github.com/unkn0wn-root/resterm/blob/main/_examples/trace.http)। [tracing दस्तावेज़](https://github.com/unkn0wn-root/resterm/blob/main/docs/resterm.md#timeline--tracing) देखें।
### Streaming (WebSocket और SSE)
`@sse` सर्वर इवेंट रिकॉर्ड करता है, जबकि `@websocket` और `@ws` WebSocket फ्रेम स्क्रिप्ट करते हैं। दोनों Stream टैब में ट्रांसक्रिप्ट उत्पन्न करते हैं:```http
### Events
# @sse duration=30s idle=10s max-events=5
GET https://api.example.com/events
### Chat
# @websocket idle=3s
# @ws send Hello
# @ws close 1000 done
GET wss://api.example.com/chat
उदाहरण: _examples/streaming.http। स्ट्रीमिंग दस्तावेज़ीकरण देखें।
gRPC
सर्वर के लिए GRPC अनुरोध पंक्ति और पूर्ण योग्य विधि के लिए @grpc का उपयोग करें। बॉडी protobuf JSON है:```http
Get user
@grpc users.UserService/GetUser
@grpc-plaintext true
GRPC {{grpc.host}}
{"tenantId":"{{tenant.id}}"}
सर्वर रिफ्लेक्शन डिफ़ॉल्ट रूप से सक्षम है। डिस्क्रिप्टर सेट और स्ट्रीमिंग कॉल भी समर्थित हैं। उदाहरण: [`_examples/grpc.http`](https://github.com/unkn0wn-root/resterm/blob/main/_examples/grpc.http)। [gRPC दस्तावेज़ीकरण](https://github.com/unkn0wn-root/resterm/blob/main/docs/resterm.md#grpc) देखें।
### OpenAPI आयात
किसी स्थानीय OpenAPI दस्तावेज़ या `http(s)` URL से अनुरोध, मॉक या दोनों उत्पन्न करें:```bash
resterm --from-openapi _examples/openapi-spec.yml --http-out api.http --openapi-mode both
रिमोट फ़ेच --insecure और --proxy का सम्मान करते हैं। उदाहरण इनपुट: _examples/openapi-spec.yml। आयात दस्तावेज़ीकरण देखें।
SSH टनल
उन अनुरोधों से पहले एक SSH प्रोफ़ाइल परिभाषित करें जो इसका उपयोग करते हैं, फिर इसे use= के साथ चुनें:```http
// Set key to choose a key file. Leave it out to use your SSH agent or a default key.
@ssh file edge host=jump.example.com user=ops key=~/.ssh/id_ed25519
Internal API
@ssh use=edge
GET http://10.0.0.10/v1/health
प्रोफाइल फ़ाइल-व्यापी या वर्कस्पेस-व्यापी हो सकते हैं, और एक-बार के इनलाइन टनल भी समर्थित हैं। उदाहरण: [`_examples/ssh.http`](https://github.com/unkn0wn-root/resterm/blob/main/_examples/ssh.http)। [SSH दस्तावेज़ीकरण](https://github.com/unkn0wn-root/resterm/blob/main/docs/resterm.md#ssh-tunnels) देखें।
### Kubernetes पोर्ट-फ़ॉरवर्ड
`@k8s` एक पॉड, सेवा, डिप्लॉयमेंट या स्टेटफुलसेट के लिए एक प्रबंधित पोर्ट-फ़ॉरवर्ड खोलता है:```http
### Service health
# @k8s namespace=default service=api port=http
GET http://api.default.svc.cluster.local/health
लक्ष्य संख्यात्मक या नामित पोर्ट का उपयोग कर सकते हैं और उन्हें पुनः उपयोग योग्य प्रोफाइल के रूप में सहेजा जा सकता है। उदाहरण: _examples/k8s.http। Kubernetes दस्तावेज़ीकरण देखें।
थीम और बाइंडिंग
कॉन्फ़िग निर्देशिका में themes/*.toml और bindings.toml या bindings.json के साथ रंग और कीबाइंडिंग अनुकूलित करें। दस्तावेज़: docs/resterm.md#theming और docs/resterm.md#custom-bindings।
दस्तावेज़ीकरण
docs/resterm.mdअनुरोध सिंटैक्स, निर्देश, स्क्रिप्टिंग और ट्रांसपोर्ट को कवर करता है।docs/cli.mdresterm run, इम्पोर्टर, संग्रह और इतिहास को कवर करता है।- संगतता v1 के लिए Resterm की संगतता गारंटी की व्याख्या करती है।
TUI के अंदर, ? दबाएं या :help चलाएं। जब आप इंस्टॉल किए गए रिलीज़ के लिए पूर्ण वेब मैनुअल चाहते हैं तो :docs का उपयोग करें।