Когда вы используете точку с запятой, вы создаете Параметры матрицы .
Вы можете использовать либо @MatrixParam
, либо PathSegment
, чтобы получить их. Пример:
public String get(@PathParam("param") PathSegment pathSegment)
Обратите внимание, что параметры Matrix соответствуют исходным параметрам.
Так, в случае «123; 456; 789» - 123 - это параметр пути, а 456 и 789 - имена параметров матрицы.
Итак, если вы хотите получать товары по идентификаторам, вы можете сделать что-то вроде этого:
public List<Product> getClichedMessage(@PathParam("ids") PathSegment pathSegment) {
Set<String> ids = pathSegment.getMatrixParameters().keySet();
// continue coding
}
Обратите внимание, что ваш URL должен быть /products/ids;123;456;789
На самом деле, IMO - это не очень хороший дизайн: вы используете имя параметра матрицы в качестве значения. Я думаю, что лучше использовать параметры запроса: /products?id=123&id=456&id=789
, поэтому вы можете легко получить их в методе:
public List<Product> getClichedMessage(@QueryParam("id") List<String> ids)