Saltar al contenido principal

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ámetrosTipoDescripción
keystringEl nombre del parámetro
valuestringEl 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ámetroEjemploNotas
TextosetParameter("name", "John Doe")Cadenas de texto regulares
NúmerossetParameter("age", "30")Los números deben pasarse como cadenas
FechassetParameter("date", "2023-12-01")Usa el formato ISO para las fechas
BooleanossetParameter("active", "true")Pasa "true" o "false" como cadenas
JSONsetParameter("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