我正在創建一個 REST API,它將通過 POST 接收 JSON 資料。我現在正在創建 JSON 的結構,并且想知道如何發送表示在發送方選擇了哪個單選按鈕的資料的最佳實踐是什么。我想到了 3 種可能的方法,但如果有更好的方法,我愿意接受其他選擇。以下是 UPS、FedEx 和 USPS 作為示例選項的 3 種方式:
“UPS”:假,“聯邦快遞”:真,“USPS”:假
“ShippingCompany”:2 // 1 用于 UPS,2 用于 FedEx,3 用于 USPS
“航運公司”:“聯邦快遞”
uj5u.com熱心網友回復:
這取決于用例和誰在使用 API。
您的第一個解決方案是這三個中最不受歡迎的,因為您想實作一個單選按鈕。這將更像是一個復選框的情況。
變體 2 和 3 是可互換的,但我會使用 3,因為您的意思很明顯,而不必查找整數的含義。
更進一步,您可以查看 enums 及其在openapi中的定義。
uj5u.com熱心網友回復:
您可以使用 querySelector 輕松獲得它:
let el = document.querySelector("input[name=radioName]:checked");
let val = el !== null ? el.value : "";
在您的 json 中,您使用如下:
json = {
radioName: val
}
然后,要發布,也許你可能需要對 json 進行字串化。這是使用 Fetch Api 并從后端接收 json 的示例代碼。
const getAllIncidents = () => { var reqHeaders = new Headers();
var reqInit = { method: 'GET',
headers: reqHeaders,
mode: 'cors',
cache: 'default' ,
body: JSON.stringify( {
radioName: val
})
};
fetch(service_url, reqInit)
.then( r => {
return r.json();
}).then( json => {
console.log(json);
});
}
Obs 1.:如果選擇器沒有回傳任何元素,則 querySelector 將回傳 null。Obs 2.:記住為單選按鈕集合使用相同的名稱,并為每個單選按鈕集合使用不同的 id。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/446754.html
下一篇:顯示模式而不是控制臺警報
