JAX-RS / Rest: задать параметр несколько раз или использовать один параметр с разделителями-запятыми?

Я читал, что HTTP-способ передать массив в запросе - это установить параметр несколько раз:

1) GET /users?orderBy=last_name&orderBy=first_name

Однако я также видел параметр с разделителями-запятыми ( и я считаю, что это «чище»):

2) GET /users?orderBy=last_name,first_name

Я хочу реализовать множественную сортировку (упорядочивание пользователей по last_name, затем повторяющиеся last_name упорядочиваются по first_name). С точки зрения кода это просто (библиотеки Google Guava спешат на помощь), но как мне это раскрыть? Сохраняет ли первый способ хотя бы порядок полей (сортировка по last_name, затем по first_name)?

Spring волшебным образом преобразует параметр в массив String [], если он задан несколько раз в запросе:

... @RequestParam("orderBy") String[] orderBy ... becomes ["last_name","first_name"]

Это заставляет меня думать, что первый способ считается наилучшим, хотя мне нравится второй способ ...

12
задан bmargulies 6 September 2010 в 17:38
поделиться