Skip to content

어드민 순서형 리소스 bulk reorder API 추가 #610

@hyejj19

Description

@hyejj19

배경

어드민에서 배너/큐레이션/지역/증류소처럼 순서가 있는 리소스의 순서를 드래그로 변경할 때, 현재 API는 단건 순서 변경만 지원하고 bulk reorder API가 없습니다.

현재 확인된 단건 API:

  • PATCH /admin/api/v1/banners/{bannerId}/sort-order body { sortOrder }
  • PATCH /admin/api/v1/curations/{curationId}/display-order body { displayOrder }
  • PATCH /admin/api/v1/regions/{regionId}/sort-order body { sortOrder }
  • PATCH /admin/api/v1/distilleries/{distilleryId}/sort-order는 프론트 계약에는 있으나 published admin API docs에는 mutation 문서가 보여야 하는지 확인이 필요합니다.

문제

단건 API만으로 여러 row의 최종 순서를 저장하면 프론트가 변경분을 여러 요청으로 나눠 보내야 합니다. 이 경우 중간 실패, 순서 충돌, refetch 전 표시 순서 불일치가 생길 수 있고, 여러 번 드래그한 변경을 원자적으로 저장하기 어렵습니다.

요청

순서 변경을 하나의 트랜잭션으로 저장할 수 있는 bulk reorder API를 추가해주세요.

예시 endpoint:

  • PATCH /admin/api/v1/banners/reorder
  • PATCH /admin/api/v1/curations/reorder
  • PATCH /admin/api/v1/regions/reorder
  • PATCH /admin/api/v1/distilleries/reorder

Request 예시 1:

{
  "orders": [
    { "id": 1, "sortOrder": 0 },
    { "id": 5, "sortOrder": 1 },
    { "id": 3, "sortOrder": 2 }
  ]
}

Request 예시 2:

{
  "ids": [1, 5, 3]
}

기대 동작

  • 한 요청을 하나의 트랜잭션으로 처리합니다.
  • 중복 ID, 존재하지 않는 ID, scope가 다른 ID를 검증합니다.
  • sortOrder / displayOrder가 gap 또는 duplicate 없이 정규화됩니다.
  • 저장 후 목록 조회 시 요청한 최종 순서와 일치합니다.
  • admin API 문서에 region/distillery 포함해서 순서 변경 API가 문서화됩니다.

확인 필요

  • 배너 순서 scope: 전체 배너 기준인지, bannerType/isActive별 기준인지
  • 큐레이션 displayOrder scope
  • 지역 순서 scope: 전체 region인지, parentId별인지
  • 증류소 sort-order API 실제 지원 여부와 문서 누락 여부

참고

프론트 region feature plan에도 현재 bulk reorder API가 없어서 후속 이슈가 필요하다고 기록되어 있습니다.

Metadata

Metadata

Assignees

Labels

기능신규 기능

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions