URL регулярного выражения Java для ожидания MockServer - PullRequest
0 голосов
/ 01 июля 2018

Я пытаюсь настроить некоторые ожидания в MockServer, где у меня есть конкретные ожидания для запросов, соответствующих этому пути

/api/users/:user_id

с использованием регулярного выражения /api/users/.*.

Однако у меня есть несколько других ожиданий, которым я хочу соответствовать при доступе к пользовательским ресурсам:

/api/users/:user_id/books
/api/users/:user_id/books/:book_id
/api/users/:user_id/holidays

Я не совсем уверен, как правильно использовать регулярные выражения для сопоставления с первым путем, не влияя также на запросы, поступающие для пользовательских ресурсов без (т. Е. Все запросы совпадают на первом пути).

Например, я считаю, что для пути /api/users/:user_id/books я могу использовать регулярное выражение /api/users/.*/books, но оно никогда не будет совпадать, поскольку регулярное выражение /api/users/.* для первого пути всегда будет соответствовать этим более глубоким URL-адресам.

Я читал эту страницу , но не могу понять, как правильно использовать регулярные выражения для этого конкретного случая

1 Ответ

0 голосов
/ 01 июля 2018

Одним из общих подходов здесь может быть использование отрицательных прогнозных утверждений. Для общего случая вы можете использовать этот шаблон:

/api/users/\d+/(?!books|holidays)

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

/api/users/\d+/books
/api/users/\d+/holidays

Демо

...