Я сейчас нахожусь в процессе создания сайта с AWS DynamoDB на сервере. Из внешнего интерфейса я вызываю AWS API-шлюз, который выполняет функцию Lambda, а затем извлекает данные из DynamoDB.
Теперь я определил объект «Item» с несколькими атрибутами, включая «Теги». атрибут. Один элемент может иметь несколько тегов. Оба хранятся в отдельных таблицах DynamoDB, а Item имеет столбец «Tags» с массивом TagID. Каждый TagID связан с тегом в таблице тегов.
Вопрос в том, как лучше всего получить элемент и соответствующие ему объекты тега?
Когда я запускаю это из внешнего интерфейса, я вызываю в API / items, который выбирает нужный элемент. Под Тегами я получаю массив TagID. Я хочу, чтобы эти теги были фактическими объектами, поэтому я должен просто вызвать второй вызов API и заменить массив TagID на объекты? Я пытаюсь выяснить, что является лучшей практикой в этом сценарии.
Когда я пишу это, возможно, мне следует отредактировать свою функцию Lambda, которая получает элементы, чтобы она включала объекты Tag?
Это не совсем точное представление о том, что я делаю, но оно должно дать вам правильное представление.
function Item() {
const [items, setItems] = useState([]);
useEffect(() => {
async function onLoad() {
if (!props.isAuthenticated) {
return;
}
try{
const items = await loadItems();
setItems(items);
/* Should I run my secondary call here? */
} catch(e) {
alert(e);
}
setLoading(false);
}
onLoad();
}, [props.isAuthenticated]);
function loadItems() {
return API.get('nh', '/items');
}
}
Item.propTypes = {
itemId: PropTypes.string.isRequired,
name: PropTypes.string.isRequired,
description: PropTypes.string.isRequired,
category: PropTypes.string.isRequired,
tags: PropTypes.arrayOf(PropTypes.object)
}