Request():setParameter()
Thiết lập một tham số cho phần thân yêu cầu (request body) (dùng với các yêu cầu POST/PUT/PATCH). Phương thức này cho phép bạn thêm dữ liệu sẽ được gửi trong phần thân yêu cầu.
Khai báo
setParameter(key: string, value: string): Request
Tham số
| Tham số | Kiểu | Mô tả |
|---|---|---|
| key | string | Tên của tham số |
| value | string | Giá trị của tham số |
Trả về
Request - Trả về đối tượng Request để có thể gọi phương thức liên tiếp
Mô tả
Phương thức setParameter() thêm một cặp key-value vào phần thân yêu cầu (request body). Phương thức này chủ yếu được dùng với các yêu cầu POST, PUT và PATCH khi bạn cần gửi dữ liệu đến máy chủ. Bạn có thể gọi phương thức này nhiều lần để thêm nhiều tham số vào phần thân yêu cầu.
Ví dụ
POST cơ bản với tham số
-- Gửi dữ liệu biểu mẫu với yêu cầu POST
local response = Request("https://api.example.com/users")
:setParameter("name", "John Doe")
:setParameter("email", "john@example.com")
:setParameter("age", "30")
:post()
Yêu cầu POST với Content Type JSON
-- Gửi dữ liệu JSON với yêu cầu POST
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()
Yêu cầu PUT với tham số
-- Cập nhật tài nguyên bằng yêu cầu PUT
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()
Yêu cầu PATCH với cập nhật một phần
-- Cập nhật một phần tài nguyên bằng 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()
Gửi biểu mẫu
-- Gửi biểu mẫu đăng nhập
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()
Truy vấn tìm kiếm với POST
-- Gửi các tham số tìm kiếm qua 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("Kết quả tìm kiếm: " .. results)
else
print("Tìm kiếm thất bại với mã trạng thái: " .. status)
end
Cấu trúc dữ liệu phức tạp
-- Tạo một đối tượng phức tạp với nhiều tham số lồng nhau
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()
Các kiểu tham số
Khi sử dụng setParameter(), tất cả giá trị đều được xử lý dưới dạng chuỗi. Dưới đây là các trường hợp sử dụng phổ biến:
| Kiểu tham số | Ví dụ | Ghi chú |
|---|---|---|
| Văn bản | setParameter("name", "John Doe") | Chuỗi văn bản thông thường |
| Số | setParameter("age", "30") | Số nên được truyền dưới dạng chuỗi |
| Ngày tháng | setParameter("date", "2023-12-01") | Dùng định dạng ISO cho ngày |
| Boolean | setParameter("active", "true") | Truyền "true" hoặc "false" dưới dạng chuỗi |
| JSON | setParameter("data", '{"key":"value"}') | Chuỗi JSON có thể được truyền làm tham số |
Lưu ý
- Phương thức này chủ yếu được dùng với các yêu cầu POST, PUT và PATCH
- Tất cả giá trị tham số được xử lý dưới dạng chuỗi
- Phương thức trả về đối tượng Request, cho phép gọi phương thức liên tiếp
- Các tham số thường được định dạng theo header Content-Type
- Đối với yêu cầu GET, tham số nên được đưa vào chuỗi truy vấn của URL thay thế
- Định dạng thực tế của phần thân yêu cầu phụ thuộc vào header Content-Type được thiết lập bằng
setHeader() - Việc gọi
setParameter()nhiều lần với cùng một key sẽ ghi đè giá trị trước đó