Контекст: Я создаю Nuxt PWA, используя Strapi для генерации REST API. В данный момент я работаю над созданием способа обновления массива в модели user
. Массив представляет собой 'Dynami c Zone' , который содержит 'компонент', который определяет одностороннее отношение и простое числовое значение.
Проблема: Исходя из следующего из Strapi docs я ошибочно предположил, что могу обновить конкретный c компонентный объект в массиве 'Dynami c Zone', используя out PUT
запрос. В документах запрос PUT
описывается так:
Частично обновляет запись по id и возвращает ее значение. Поля, которые не отправляются в запросе, не изменяются в БД.
Псевдокод моего текущего запроса следующий. Я ожидал, что это будет сделано для обновления свойства value
компонента (полученного с помощью id
) в массиве зоны Dynami c:
axios.put('baseURL/users/:id', {
'DynamicZoneName': [
{
'__component: 'relationships.componentName',
'id': Number,
'value': Number
}
]
}, { headers ... }
)
Однако при этом возвращается 200
OK, ответ удаляет оставшиеся «компонентные» объекты в массиве. Теперь я понимаю, что это потому, что запрос берет весь массив из ключа DynamicZoneName
как [ { '__component: 'relationships.componentName', 'id': Number, 'value': Number } ]
и обновляет весь массив DynamicZoneName
до этого нового значения.
Мой вопрос: возможно ли это? делать то, что я изначально намеревался делать с использованием пользовательских маршрутов и контроллеров со Strapi. Будет ли теоретически возможным получить объекты, которые я буду sh обновлять по настраиваемому маршруту , а затем обработать запрос с помощью настраиваемого контроллера , который обновляет база данных? (Использование полученного id
для манипулирования объектом на DynamicZoneName.indexOf[id]
)
Или, лучше было бы (1) GET
весь массив, (2) локально манипулировать им в моем приложении Nuxt а затем (3) PUT
вернуть обратно, используя запрос, который я уже написал?
Это будет массив, содержащий 100 объектов, каждый из которых будет иметь как минимум три пары ключ-значение и еще один вложенный объект. Имея это в виду, я обеспокоен пропускной способностью запроса для обоих процессов и (учитывая, что это мой первый раз в разработке PWA) не уверен в передовой практике или общем пути к достижению!
В настоящий момент, мы также собираемся разбить большой массив DynamicZoneName
на несколько меньших массивов, чтобы сделать их более управляемыми для повторения. Я более чем рад услышать о других, более общих методах выполнения подобных вещей, если это архитектурно неудачный способ построения API.