Class: LanguageOperator::Dsl::HTTP
- Inherits:
-
Object
- Object
- LanguageOperator::Dsl::HTTP
- Defined in:
- lib/language_operator/dsl/http.rb
Overview
HTTP client helper for MCP tools
Provides convenient methods for making HTTP requests from within tools. Supports GET, POST, PUT, DELETE, HEAD with automatic JSON parsing.
Class Method Summary collapse
-
.curl(_url, options: []) ⇒ Object
deprecated
Deprecated.
This method has been removed for security reasons
-
.delete(url, headers: {}, auth: nil, timeout: 30) ⇒ Object
Perform a DELETE request.
-
.get(url, headers: {}, follow_redirects: true, timeout: 30) ⇒ Object
Perform a GET request.
-
.head(url, headers: {}, timeout: 30) ⇒ Object
Get just the headers from a URL.
-
.post(url, body: nil, json: nil, headers: {}, auth: nil, timeout: 30) ⇒ Object
Perform a POST request.
-
.put(url, body: nil, json: nil, headers: {}, auth: nil, timeout: 30) ⇒ Object
Perform a PUT request.
Class Method Details
.curl(_url, options: []) ⇒ Object
Deprecated.
This method has been removed for security reasons
Wrapper for curl commands (REMOVED FOR SECURITY) This method has been removed as it executes shell commands via backticks which is a security risk in synthesized code.
119 120 121 |
# File 'lib/language_operator/dsl/http.rb', line 119 def self.curl(_url, options: []) raise SecurityError, 'HTTP.curl has been removed for security reasons. Use HTTP.get, HTTP.post, etc. instead.' end |
.delete(url, headers: {}, auth: nil, timeout: 30) ⇒ Object
Perform a DELETE request
85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# File 'lib/language_operator/dsl/http.rb', line 85 def self.delete(url, headers: {}, auth: nil, timeout: 30) validation_result = validate_url(url) return validation_result unless validation_result[:success] uri = validation_result[:uri] http = build_http(uri, timeout: timeout) request = Net::HTTP::Delete.new(uri) add_headers(request, headers) add_auth(request, auth) if auth execute_request(http, request) end |
.get(url, headers: {}, follow_redirects: true, timeout: 30) ⇒ Object
Perform a GET request
24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/language_operator/dsl/http.rb', line 24 def self.get(url, headers: {}, follow_redirects: true, timeout: 30) validation_result = validate_url(url) return validation_result unless validation_result[:success] uri = validation_result[:uri] http = build_http(uri, timeout: timeout) request = Net::HTTP::Get.new(uri) add_headers(request, headers) execute_request(http, request, follow_redirects: follow_redirects) end |
.head(url, headers: {}, timeout: 30) ⇒ Object
Get just the headers from a URL
101 102 103 104 105 106 107 108 109 110 111 112 |
# File 'lib/language_operator/dsl/http.rb', line 101 def self.head(url, headers: {}, timeout: 30) validation_result = validate_url(url) return validation_result unless validation_result[:success] uri = validation_result[:uri] http = build_http(uri, timeout: timeout) request = Net::HTTP::Head.new(uri) add_headers(request, headers) execute_request(http, request) end |
.post(url, body: nil, json: nil, headers: {}, auth: nil, timeout: 30) ⇒ Object
Perform a POST request
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/language_operator/dsl/http.rb', line 38 def self.post(url, body: nil, json: nil, headers: {}, auth: nil, timeout: 30) validation_result = validate_url(url) return validation_result unless validation_result[:success] uri = validation_result[:uri] http = build_http(uri, timeout: timeout) request = Net::HTTP::Post.new(uri) # Set body if json request.body = json.to_json request['Content-Type'] = 'application/json' elsif body request.body = body end add_headers(request, headers) add_auth(request, auth) if auth execute_request(http, request) end |
.put(url, body: nil, json: nil, headers: {}, auth: nil, timeout: 30) ⇒ Object
Perform a PUT request
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/language_operator/dsl/http.rb', line 62 def self.put(url, body: nil, json: nil, headers: {}, auth: nil, timeout: 30) validation_result = validate_url(url) return validation_result unless validation_result[:success] uri = validation_result[:uri] http = build_http(uri, timeout: timeout) request = Net::HTTP::Put.new(uri) if json request.body = json.to_json request['Content-Type'] = 'application/json' elsif body request.body = body end add_headers(request, headers) add_auth(request, auth) if auth execute_request(http, request) end |