[英]Pushing and pulling JSON data with a filter from API
我正在研究一個 REACT JS 項目,試圖創建一個小型待辦事項列表應用程序。
我的數據在 JSON 文件中,目前托管在 jsonbin.io 上,格式如下所示......
{
"moduleAccess": {
"tasks": [
{
"email": "campbell@yahoo.com",
"id": 0,
"task_name": "Call mom",
"due_date": 44875,
"completed": true
},
{
"email": "palsner593@gmail.com",
"id": 1,
"task_name": "Buy eggs",
"due_date": 44880,
"completed": false
},
{
"email": "rob@gmail.com",
"id": 2,
"task_name": "Go to dog park",
"due_date": 44879,
"completed": false
}
]
}
}
目前,我使用 jsonbin.io 的 API 獲取數據。數據被放入一個名為Tasks的變量中。 如果用戶更新特定的待辦事項、刪除待辦事項或創建新的待辦事項,所有這些更改都會放回Tasks變量中。 然后我可以將這些任務推送到服務器。
我上面解釋的很好; 然而,需要注意的是,我想允許多個用戶登錄,然后只提取屬於他們各自 email 的 Todo 項目。
例如, campbell@yahoo.com已登錄到我的應用程序。 在這種情況下,在我的獲取拉取請求中,我可以指定我只想要campbell@yahoo.com的記錄
async function loadData() {
const newPath = '$..tasks[?(@.email==' + campbell@yahoo.com + ')]';
console.log(newPath);
const url = 'https://api.jsonbin.io/v3/b/*binid*?meta=false'
const response = await
fetch(url, {
method: "GET",
headers: {
"X-Master-Key": key,
"X-JSON-Path": newPath
}
});
const data = await response.json();
setTasks([...data]); //or whatever
console.log(tasks);
}
這個概念也有效。 但是,在用戶進行更改后將我的任務數據推送回服務器時,我遇到了一個問題。 我正在使用的 API 似乎不允許在 PUSH 時指定 JSON 路徑的參數。 JSON-PATH 僅允許用於拉取請求。 所以當我向服務器推送數據時,似乎所有 JSON 數據都會被覆蓋,無論用戶如何。
有人有其他方法來推送/拉取用戶特定的數據嗎? 如果我提供的細節是不必要的,我很抱歉。 不確定解決此問題的最簡單方法是反應應用程序。
任何幫助表示贊賞。 謝謝!
我對 jsonbin.io API 做了一些研究,並提出了一個可能有效的解決方案。
所以我不確定這是否有效,但仍然有效。
創建新垃圾桶時,您可以使用X-Collection-Id
將其添加到某個集合中。 所以你可以進行下一個流程:
希望這有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.