Проверить параметры фильтра REST

У меня есть GET REST API с некоторыми параметрами фильтра. Ниже приведены единственные допустимые комбинации фильтров:

 1. id==123412
 2. name==MyName&age==30
 3. name==MyName&pincode=12345

Итак, следующие недопустимые комбинации фильтров:

 1. id==123412&name==MyName
 2. name==MyName&age==30&name==MyName
 3. age==30&pincode=12345
 4. pincode=12345

Однако допустимая комбинация:

age==30&name==MyName

Мне нужна была помощь в подтверждении вышеизложенного. У меня был один подход:

  • Сначала составьте 3 списка с именами параметров допустимых комбинаций Нравиться: List1 = {"id"} List2 = {"имя", "возраст"} List3 = {"имя", "пин-код"}
  • Затем возьмите имена параметров из ввода и проверьте, совпадают ли они любой из списка (но для этого потребуется сортировка списка и сравните, потому что, хотя меня не волнует порядок параметров, мне нужно будет проверить дубликаты)

Есть способ лучше? Спасибо!

Вы используете какой-либо фреймворк? Не могли бы вы подробнее рассказать об используемых инструментах для создания вашего приложения для отдыха.

dbl 26.09.2018 13:06

Вы должны предоставить клиентам все URI, которые клиент должен использовать для взаимодействия с вашим API. Эти URI должны иметь правильное количество и порядок параметров фильтра. Это не означает, что вы не должны проверять их на стороне сервера, хотя я бы предпочел игнорировать любые нежелательные параметры, чем вызывать ошибку.

Roman Vottner 26.09.2018 13:12

Спасибо. Я использую Spring. Но мне нужно будет выполнить указанную выше проверку на Java, в моей логике на стороне сервера, поскольку это единственная часть, в которую я могу вносить изменения ... Как мне действовать в этом случае?

Rohan Bhattacharya 26.09.2018 13:23
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
161
0

Другие вопросы по теме