Strapi技术问询:能否通过API或GraphQL删除嵌套可重复组件项?
可以通过API/GraphQL删除嵌套可重复组件中的指定项
完全可以实现,针对你这个restaurant集合里的franchise可重复组件,下面分别给出REST API和GraphQL的具体实现方式:
REST API 实现方式
由于每个franchise项都有独立的id,你可以通过PUT请求更新目标restaurant,在请求体中只保留需要保留的franchise项(即移除要删除的Florida项),Strapi会自动覆盖原有的组件数组,完成删除操作。
请求示例
- 请求方法:
PUT - 请求地址:
/api/restaurants/2(2是目标restaurant的id) - 请求体(JSON格式):
{ "data": { "franchise": [ { "id": 5, "state": "New York" } ] } }
注意:必须保留需保留项的
id,否则Strapi会将其识别为新增组件项。
GraphQL 实现方式
通过updateRestaurant mutation,同样传入仅包含保留项的franchise数组即可完成删除。
Mutation 示例
mutation UpdateRestaurant($id: ID!, $data: RestaurantInput!) { updateRestaurant(id: $id, data: $data) { data { id attributes { franchise { id state } } } } }
变量参数
{ "id": "2", "data": { "franchise": [ { "id": 5, "state": "New York" } ] } }
注意事项
- 确保你的API访问令牌拥有
restaurant集合的更新权限; - 操作前建议先通过GET请求获取最新的
franchise项数据,避免因数据不一致导致误删。
内容的提问来源于stack exchange,提问作者Binho
相关产品推荐
相关产品推荐

