Я пытаюсь создать небольшое приложение, которое отображает несколько простых визуализаций из данных, проиндексированных в Elasticsearch (в управляемой службе AWS Elasticsearch).
Поскольку, насколько мне известно, степень контроля доступа, которую AWS предлагает для своей службы ES, основана на разрешении заданных c HTTP-глаголов (GET, POST и т. Д. c), чтобы упростить мою жизнь и администраторов ES, я даю этому приложению права «только для чтения», поэтому только GET и HEAD .
Однако , я вижу, что для своего API поиска ES предоставляет конечную точку GET, которая работает с параметрами строки запроса, и конечную точку POST, которая работает с основанным на JSON «Query DSL». Этот DSL кажется предпочтительным методом во всех примерах, которые я видел в Интернете и в книгах.
Учитывая преобладание Query DSL в документации, мне было интересно:
- Предоставляет ли Query DSL функциональность, которой нет у стандартных параметров строки запроса, или они оба функционально эквивалентны?
- В результате конечная точка поиска POST приводит к тому, что любые данные фактически POSTED или это только обходной путь, позволяющий отправить JSON как запрос, который немного нарушает соглашения REST?