Request():setParameter()
Establece un parámetro para el cuerpo de la solicitud (usado con solicitudes POST/PUT/PATCH). Este método te permite añadir datos que se enviarán en el cuerpo de la solicitud.
Firma
setParameter(key: string, value: string): Request
Parámetros
| Parámetros | Tipo | Descripción |
|---|---|---|
| key | string | El nombre del parámetro |
| value | string | El valor del parámetro |
Devuelve
Request - Devuelve el objeto Request para encadenar métodos
Descripción
El método setParameter() añade un par clave-valor al cuerpo de la solicitud. Este método se usa principalmente con solicitudes POST, PUT y PATCH donde necesitas enviar datos al servidor. Puedes llamar a este método varias veces para añadir múltiples parámetros al cuerpo de la solicitud.
Ejemplos
POST básico con parámetros
-- Send form data with POST request
local response = Request("https://api.example.com/users")
:setParameter("name", "John Doe")
:setParameter("email", "john@example.com")
:setParameter("age", "30")
:post()
Solicitud POST con tipo de contenido JSON
-- Send JSON data with POST request
local response = Request("https://api.example.com/posts")
:setHeader("Content-Type", "application/json")
:setParameter("title", "My New Post")
:setParameter("body", "This is the content of my post")
:setParameter("userId", "1")
:post()
Solicitud PUT con parámetros
-- Update a resource with PUT request
local response = Request("https://api.example.com/users/123")
:setHeader("Content-Type", "application/json")
:setParameter("name", "Jane Smith")
:setParameter("email", "jane@example.com")
:setParameter("status", "active")
:put()
Solicitud PATCH con actualizaciones parciales
-- Partially update a resource with PATCH
local response = Request("https://api.example.com/users/456")
:setHeader("Content-Type", "application/json")
:setParameter("email", "newemail@example.com")
:setParameter("lastUpdated", "2023-12-01")
:patch()
Envío de formulario
-- Submit a login form
local response = Request("https://example.com/login")
:setHeader("Content-Type", "application/x-www-form-urlencoded")
:setParameter("username", "myusername")
:setParameter("password", "mypassword")
:setParameter("remember", "true")
:post()
Consulta de búsqueda con POST
-- Send search parameters via POST
local response = Request("https://api.example.com/search")
:setParameter("query", "lua programming")
:setParameter("limit", "10")
:setParameter("sort", "relevance")
:setParameter("filters", "books,tutorials")
:post()
local results = response:getData()
local status = response:getResponseCode()
if status == 200 then
print("Search results: " .. results)
else
print("Search failed with status: " .. status)
end
Estructura de datos compleja
-- Create a complex object with multiple nested parameters
local response = Request("https://api.example.com/orders")
:setHeader("Content-Type", "application/json")
:setParameter("customerId", "12345")
:setParameter("productId", "67890")
:setParameter("quantity", "2")
:setParameter("shippingAddress", "123 Main St, City, State")
:setParameter("paymentMethod", "credit_card")
:post()
Tipos de parámetros
Al usar setParameter(), todos los valores se tratan como cadenas. Aquí tienes casos de uso comunes:
| Tipo de parámetro | Ejemplo | Notas |
|---|---|---|
| Texto | setParameter("name", "John Doe") | Cadenas de texto regulares |
| Números | setParameter("age", "30") | Los números deben pasarse como cadenas |
| Fechas | setParameter("date", "2023-12-01") | Usa el formato ISO para las fechas |
| Booleanos | setParameter("active", "true") | Pasa "true" o "false" como cadenas |
| JSON | setParameter("data", '{"key":"value"}') | Las cadenas JSON pueden pasarse como parámetros |
Notas
- Este método se usa principalmente con solicitudes POST, PUT y PATCH
- Todos los valores de los parámetros se tratan como cadenas
- El método devuelve el objeto Request, lo que permite encadenar métodos
- Los parámetros normalmente se formatean según la cabecera Content-Type
- Para solicitudes GET, los parámetros deben incluirse en la cadena de consulta de la URL en su lugar
- El formato real del cuerpo de la solicitud depende de la cabecera Content-Type establecida con
setHeader() - Múltiples llamadas a
setParameter()con la misma clave sobrescribirán los valores anteriores