Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как сделать так чтобы при нажатии кнопки добавлялось значение ?sort=p.price&order=DESC в конец строки?

Лучший ответ:
Как вариант:
const toggleOrder = () => {
  const params = new URLSearchParams(window.location.search);

  params.set('order', params.get('order') === 'DESC' ? 'ASC' : 'DESC');
  window.location.search = params.toString();
};
Пример. Код.

Худший ответ:
Несколько путей для развития есть. 

1 - через php смотришь GET и по переменным формируешь обратную ссылку. 
К примеру 
if( $_GET['order'] == 'ASC'){
$url = 'DESC';
}
а уже окончание подставляешь в ссылку. 

2 - формируешь 2 ссылки и по клику одну прячешь другую показываешь стилями (при условии что у тебя вывод информации идет через ajax
Вопрос: Вызов функции из класса?

Лучший ответ:
У вас ошибка в вызове метода getValues, так как ожидается аргумент: void getValues(Properties* objectValues);.

Создайте объект и передавайте ссылку на него.
Properties obj;
Properties* objectValues = new Properties;
objectValues->getValues(&obj);
UPD: Если вам не нужно косвенное обращение к объекту через указатель, но хотите обратиться к члену объекта через указатель, то можно так:#include <iostream>

class Properties
{
public:
  void getValues();

	int a = 13;
	int b = 82;
	float c = 27.01f;
};

void Properties::getValues()
{
	std::cout << a << std::endl;
}

int main()
{
	setlocale(0, "");
  
	Properties* ptr = new Properties;
	ptr->getValues();
  
	std::cin.get();
  
	return 0;
}
Можно также и без указателя обращаться к члену объекта, через точечную нотацию:#include <iostream>

class Properties
{
public:
  void getValues();

	int a = 13;
	int b = 82;
	float c = 27.01f;
};

void Properties::getValues()
{
	std::cout << a << std::endl;
}

int main()
{
	setlocale(0, "");
  
	Properties obj;
	obj.getValues();
  
	std::cin.get();
  
	return 0;
}

Худший ответ:
По-моему, у тебя ошибка в сигнатуре метода. Передавать туда указатель не надо, надо брать данные из this.
Вопрос: Преобразовать image в html?

Лучший ответ:
Да. Процесс называется верстка, выполняется верстальщиками. Для определения направления - гуглить background-image

Худший ответ:
чем не подходит background-image? Полностью соответствует вашему вопросу.
Вопрос: Тема дипломной работы по специальности «Информационные системы»?

Лучший ответ:
Предлагаю исследовательскую тему: "Развитие самостоятельного мышления выпускников-дипломников".

Худший ответ:
Нужна тема связанная с автоматизацией ресторана. Что можно автоматизировать? То, что еще не автоматизировали.
Вопрос: Telegram bot Python. Как вычленить юзеров с арабскими символами в имени?

Лучший ответ:
вот регулярка, срабатывающая на наличие арабских символов:/\u0621-\u064A/
соответственно проверка строки на наличие арабских символов будет выглядеть как то так:import re
...
pattern = re.compile('\u0621-\u064A')
result = pattern.search('ваша проверяемая строка')

if result is not None:
      print('есть арабские символы')
else:
      print('арабских символов нет')
...

Худший ответ:
ДопустимAr =[здесь перечисляет все арабские символы]
Name = Получаешь имя пользователя
n=0
for i in Ar:
      if Name.find(i) >= 0:
            n=1
if n=1:
      print('есть арабские символы')
else:
      print('арабских символов нет')
Вопрос: Как сверстать такой слайдер?

Лучший ответ:
за основу возьми слайдер из этой статьи https://medium.com/better-programming/webgl-enhanc...
и допили под собственные нужды
snippet

Худший ответ:
Тык
Вопрос: Почему сайт выдает 500 ошибку?

Лучший ответ:
Хостер обновил версию пыха?

Худший ответ:
может код не обработать вот и кидает ошибку, синтаксис кода вот.
Вопрос: Выбор роутера под задачу SSTP server?

Лучший ответ:
Виндовый сервер. sstp на микротике - боль и страдания.

Худший ответ:
У меня критится на виртуалке
Вопрос: Можно ли в названии домена использовать слово «Youtube»?

Лучший ответ:
Штраф - вряд-ли, скорее просто отберут домен и закроют.

Худший ответ:
Если вдруг сервис взлетает - труба просто придет и заберет домен. Если там будет три калеки - забьет.
Вопрос: Как обновить столбец максимальным значением?

Лучший ответ:
Вы столкнулись с ограничениями подзапросов команды dml (update);
Вам нужно сначала посчитать максимальное значение через предварительный запрос, а уже после в виде переменной использовать это значение.

Решение:
@salt_quest = SELECT MAX(salt_quests) + 1 FROM repository_quests;
UPDATE repository_quests SET status_game_quests = 1, status_progress_registration_quests = 0, salt_quests = @salt_quest
    WHERE status_accessibility_quests = 1 
        AND status_active_quests = 1 
        AND status_game_quests = 0 
        AND status_progress_registration_quests = 1 
        AND NOW() >= registration_date_quests;

Худший ответ:
Чуть модернизировал код:

SET @salt_quest = (SELECT MAX(salt_quests) FROM repository_quests);

UPDATE repository_quests SET status_game_quests = 1, status_progress_registration_quests = 0, salt_quests = @salt_quest:= @salt_quest + 1
              WHERE status_accessibility_quests = 1 
                  AND status_active_quests = 1 
                  AND status_game_quests = 0 
                  AND status_progress_registration_quests = 1 
                  AND NOW() >= registration_date_quests;
Вопрос: Можно ли регистрироваться самозанятым для уплаты налогов от рекламы на сайте?

Лучший ответ:
Можете. 
Хотя изначально для самозанятых предусматривался весьма ограниченный список видов деятельности, впоследствии понятия слегка поменялись и стало возможным почти все, включая очень неожиданные виды деятельности.

Только учтите, что 4% - при оказании услуг физическим лицам. Если вам платит юрлицо - вы должны заплатить 6%.

Конвертация в рубли не является операцией с ценными бумагами, но учтите, что WMZ - это валюта, и есть тонкости - например, вы должны в тот же день отправить оплатившему чек (квитанцию) с суммой в рублях (пересчитав полученное от него по текущему курсу цб). Также погуглите _официальную_ информацию, попадаете ли вы под валютный контроль при такой схеме работы.

И кстати, вы всегда можете написать письмо в налоговую инспекцию с вопросом и получить официальный ответ. Я рекомендую это сделать независимо от ваших выводов сейчас - у вас будет официальная бумага, являющаяся основанием для использования определенной схемы работы.

Удачи!

Худший ответ:
типа да

но можно попасть под агентский договор

лучше занимайся маркетингом
Вопрос: Как логичнее изменять конфиг?

Лучший ответ:
Чтобы подытожить тонкие ручейки здравого смысла, пробившиеся в комментариях.
Никто не стоит над вами с палкой и не заставляет держать весь конфиг в обязательном порядке строго только во одном месте и больше никак.
Никто не мешает вынести редактируемые значения в базу. 
В место того чтобы ковыряться грязными пальцами в файле настроек с риском там что-то поломать, куда проще оставить его в покое,  а переменные настройки редактировать через базу

Худший ответ:
создайте страничку для редактирования и всех делов.
Вопрос: В андроид больше не принято использовать сервисы для фоновых задач?

Лучший ответ:
Сервисы в 2019 году фактически надо использовать только для foreground задач, не находящихся непосредственно на экране. А-ля музыкальный плеер и проигрывание музыки, и тому подобное.
Всякие "долгие операции и вычисления", всякие загрузки больших файлов в сеть и тому подобное нужно делать с помощью WorkManager'a. 
Некоторое время назад ещё рекомендовал использовать библиотеку от evernote, например, мы в проде ещё не мигрировали с неё.

Худший ответ:
учить и учить. Я вот полтора года учу яву.
ворк менедждер я пропусил, прочитав о нем сейчас, могу сказать.
Что-то было проще сделать через него вместо асинктасков.
А вот то, чем у меня занимаются сервисы на него вообще не перекладывается.
Вопрос: Как обойти большой json файл и обновить все связанные записи в MySQL, с отставанием от файла < 2 сек.?

Лучший ответ:
Правильное решение - парсер должен сам сразу писать в БД.
Если это невозможно надо постараться максимально устранить накладки и двойные обработки:На каждую итерацию work.php отправляет ID в скрипт getEvent.php с помощью fsockopen.
... В getEvent.php опять же идет гет актуального JSON, декод и скрипт ищет в "events" ID, которое ему отправил work.php затем обрабатывает эти данные и обновляет их в базе MYSQL
Вот это что за хрень? Почему work.php не может сразу отправить данные getEvent? Зачем getEvent заново гетит JSON и заново ищет там ID?
А потом вы жалуетесь что:Оперативка кушается потому что в work.php каждые 2 секунды гетится json + в 600-800 открытых getEvent.php тоже гетится этот же json. чтобы они не отставали от данных в json файле более чем на 2 секунды.
И сколько гигабайт в вашем JSON что процесс не может его обойти и отправить мускул за 2 секунды?

Худший ответ:
При такой постановке - действительно ничего нельзя сделать. Просто он не предназначен для таких операций. Но хотя-бы первый раз его надо затянуть в базу. И всегда там хранить эти данные и там-же обрабатывать.
Вопрос: Как решить проблему с php.ini?

Лучший ответ:
Ошибки ведь читаемые и всё понятно
. >=7.1.3 <7.3 -> your PHP version (7.3.12) установленная версия не входит в указанный диапазон
 the requested PHP extension mbstring is missing from your system. - нужно подключить модуль. Как подключать инфы уйма.

Худший ответ:
Сижу иногда и думаю, что бы было если в it доминировал не английский, а русский, люди все равно бы делали посты на подобии:

Аааааа у меня вообще неведомая фигня с композером, он сломался что делать. Вот какую бредятину он мне в консоль пишет "Ваша версия php нифига не подходит этому вот пакету, который вы как то умудрились добавить в composer, да еще и так, что он валидный"
Вопрос: Зачем вообще использовать брокеры очередей?

Лучший ответ:
Очередь это буфер, куда задачи попадают с разной скоростью, а из него сливаются равномерно, по мере готовности «рабочих» их принять.

В вопросе описана так-себе реализация с поллингом очереди. Различие без-очереди и с-очередью — в направлении инициативы: 

без очередей «рабочий» опрашивает базу снова и снова: «есть чё?». Это как из браузера ajax'ом пинговать сервер раз в секунду в поиске сообщений. Работает, но такое себе..
с очередью инициатор процесса – брокер. Это брокер передаёт очередную задачу на исполнение первому освободившемуся «рабочему».

spoilerПро потерю данных при падении — че-т страшилка, далёкая от продакшена. Драйвером очереди может быть и Redis (со своей персистентностью) и MySQL какой-нибудь, и другие. Имхо костыльно пихать в очередь всего лишь id записи в БД, которую надо обработать – чтобы рабочий, взявший задачу, заново собирал данные. Это не кошерно и калорийно.

Лучше класть в очередь самодостаточную задачу. Например, сериализовать модель. Чтобы рабочий, получивший задачу, уже не обращался к базе – а только наполнял темплейт письма данными из полученной модели и отправлял послание. И в БД проставлял статус «отправлено»

Худший ответ:
 а брокеры очередей в случае падения теряют данные.
Это неверно.
Брокеры бывают разные и настроены по разному. 
В общем случае, брокер - вещь гораздо более легковесная, чем база данных. Гораздо проще масштабируется и кластеризируется, чем база данных. Да и работает в основном гораздо быстрее.

Но в вашем случае - отправлять уведомление пользователю, это не совсем задача для брокеров. Брокеры в основном нужны для общения микросервисов/программ друг с другом.
Вопрос: Рассылка для ВК бота PYTHON?

Лучший ответ:
Вот так звучит твой вопрос.

Худший ответ:
Можешь просто рассылать всем подписчикам через user_ids в messages.send, если кто-то не писал в бота, то он не сможет им написать. (если бот подключен к сообществу) 

С текстовым документом тоже не сложно, делаешь файл, пишешь в него id через запятую потом на команду рассылки считываешь все что есть в этом файле и пихаешь это в user_ids при отправке сообщения.
Вопрос: Как создать веб-сервис (Задание от Mail.ru) новичку?

Лучший ответ:
Изучите язык, иначе смысла в этих заданиях нет

Худший ответ:
В самом начале же написано:Ниже следует описание проектной работы. ﻿Это не задание. Это описание ﻿﻿подхода, котрым я предлагаю вам проверять успешность прохождения занятий.
﻿Задание вы получите после прослушивания всех материалов модуля. 
Т.е. вы застопорились даже не на задании, а на чтении плана.
А как запускать (и где взять), будет рассказано в главе, не поверите, "1.4 Java: Запуск сервера".
И под каждом степом есть секция с комментариями, очень полезная, если есть сложности.
И перед эти курсом крайне желательно пройти эти два:Java. Базовый курсJava. Functional programming
Вопрос: Как сделать поиск по совпадению двух и более слов в любом месте в mysql?

Лучший ответ:
SELECT * FROM test 
           WHERE SOUNDEX(name) 
LIKE CONCAT('%',SUBSTRING(SOUNDEX('Картошка хорошая из армении'),2),'%');
Источник 

Худший ответ:
Учимся пользоваться интернетом
Вопрос: Можно ли использовать атрибут decoding=async тега img вместо lazy load?

Лучший ответ:
Все что нашел по теме - https://www.chromestatus.com/feature/4897260684967936 , https://github.com/whatwg/html/issues/1920 , https://usefulangle.com/post/277/img-decoding-attribute , https://developer.mozilla.org/en-US/docs/Web/API/H...

Насколько я понимаю, во первых decoding=async не связан с lazy load'ом, тк он именно о декодинге, а не о загрузке, а во вторых его банально нету почти нигде (апдейт: оказывается он много где есть, но все равно это не отменяет того факта, что к лэйзи лоаду он не относится)

Худший ответ:
Атрибут  decoding=async - мало кем используется, но это важный и полезный тег.
Подробно об эффекте этого тега в видео https://www.youtube.com/watch?v=F6KGcb6trXc&t=5637s
Вопрос: Как в laravel сделать попарную валидацию?

Лучший ответ:
Попробуйте Rule:unique

Худший ответ:
Если вам нужен BATCH, то бесполезно пытаться использовать стандартные правила валидации. Можете попытаться взять стандартный валидатор и провести возможные оптимизации для field.* правил, если хватит опыта и считаете это целесообразным. Иначе - забейте и используйте стандартные правила.
Вопрос: Есть книга описывающая само строение и принципы работы компьютера?

Лучший ответ:
учитывая как много произошло изменений с того времени.
А что случилось? Архитектуру фон Неймана заменили на что-то более прогрессивное? Квантовые компьютеры уже захватили неевклидовы поля загоризонтных структур и гоняют бозоны по углам чёрных дыр процессора, пока мы смотрим котиков на Ютубе?
Да нет, всё та же чепуха, ничего нового.
Так что читайте.

Худший ответ:
Википедия
Вопрос: Как в Ubuntu объединить два раздела без LiveCd?

Лучший ответ:
ext4 не поддерживает объединение в логические тома. Если-бы при устанвке был использовал LVM (хотя это боян еще тот) или файловые системы такие как BtrFs, Zfs тогда эту операцию можно было-бы провести. Конечно обязательно проконсультиоровавшись с знакомым сисадмином. Тут основная беда в том что это опасные операции и необратимые. Любая ошибка - и ваши данные потеряны причем на многих разделах сразу.
А так... подключите /dev/sda4 просто как папку например /video и используйте.

Худший ответ:
c sda3 его объединить нельзя, ибо sda3 - расширенный раздел, костыль чтобы в формате mbr обойти ограничение на 4 раздела.
присоединить sda4, как я понял, надо к разделу sda6 на котором находится корень системы.
ext4 не позволяет изменять свои размеры в примонтированном состоянии. а отмонтировать рабочий корень системы долго и геморно. поэтому придется это делать в оффлайн. 
примерно так:
отмонтировать раздел  sda4, и в gparted уменьшить его гигабайт на 50 (чтобы высвободить место для расширения sda6). это займет много времени ибо много данных надо перемещать.
далее скачать с оф.сайта gparted.iso и записать его флешку и загрузиться с нее.
вариант два: на андроид-телефон с root-правами проставить drivedroid (лучше взять разблокированную с 4пда.ру) закинуть туда же gparted.iso и через drivedroid захостить read-only USB on MT USB 1 к примеру. перезагрузить комп - выбрать загрузку с USB. прозрачно загрузишься с iso-образа.
в gparted.iso увеличить раздел sda3 (именно sda3) на освободившееся место. а уже потом увеличить sda6 на свободное место.
перезагрузиться в основную систему, примонтиоовать sda4, после чего перенести все данные с раздела sda4 в sda6 и удалить более ненужный sda4.
вновь перезагрузить в gparted.iso и увеличить sda3 и sda6 на освободившееся место.
и да - желательно чтобы комп в это время не вырубался :)
Вопрос: Как привлекать помощника на почасовые проекты на Upwork?

Лучший ответ:
Тоже сталкивался с такой проблемой.

1. Давать доступ к своему аккаунту вообще не вариант. Слишком много там ценной инфы и доступ к деньгам.
2. Агентство пробовал открывать, но с ним слишком много мороки. Нужно перетащить человека на Upwork, научить пользоваться тайм-трекером, создать новый контракт с тем же заказчиком, деньги от агенства выводятся отдельно от твоих собственных денег. В итоге я забросил этот вариант. Он только для тех, кто реально собирается развивать агенство.
3. В итоге остановился на самом простом варианте:
- на берегу договариваемся с заказчиком, что часть работ вы делегируете, обговариваете цену таких работ
- ваш помощник делает работу и может вообще не знать про Upwork, просто сообщает вам количество часов, если вы договаривались на часовую ставку
- вы идёте на Upwork и вручную логируете соответствующее количество часов, либо просто просите заказчика сделать платёж на фиксированную сумму
- получаете оплату от заказчика и оплачиваете услуги помощника

Тут есть ещё момент, что передача части работы другому человеку может быть против правил Upwork, поэтому обсуждать такую схему стоит не через Upwork Messenger. А раз уж пошла игра в тёмную, то появляется ещё один вариант: оплата услуг помощника вам на PayPal или другим способом вне Upwork.

Худший ответ:
1. Давать исполнителю логин-пароль не стоит. Во первых, можно увидеть кучу всего лишнего, во вторых, вас могут внезапно забанить на Упворке за резкую смену часового пояса.
2. Открывать агентство
3. Сказать что на проекте есть помощники и трекать вручную, либо же брать фиксу и не трекать НИЧЕГО
Вопрос: Как программу, написанную в Mathcad использовать в интернете (на своей странице или сайте) для онлайн расчетов?

Лучший ответ:
К сожалению, вы выбрали самый непригодный к реализации вариант. Вам придется написать программу на MathCad, которая будет в цикле пытаться прочитать файл с параметрами, посчитать, результат записать в другой файл. 
И написать вторую программу, бэкэнд, которая будет показывать пользователю странички, брать с них параметры и формировать файлики для маткада.
Долго, глючно и с тормозами. 
Лучше замените маткад хотя бы на питон.

Худший ответ:
К сожалению, вы выбрали самый непригодный к реализации вариант. Вам придется написать программу на MathCad, которая будет в цикле пытаться прочитать файл с параметрами, посчитать, результат записать в другой файл. 
И написать вторую программу, бэкэнд, которая будет показывать пользователю странички, брать с них параметры и формировать файлики для маткада.
Долго, глючно и с тормозами. 
Лучше замените маткад хотя бы на питон.
Вопрос: Как нужно искать open source проекты для дальнейшего участия в них?

Лучший ответ:
как правильнее искать тот или иной проект.
Пишете в Гугле "active opensource project" и вперёд, по результатам.принципиально искать нечто уникальное
Как хотите.какой входной порог знаний нужен для участия в open source?
Достаточный для того, чтобы мейнтейнер не сблевал от вашего кода и сунул его в проект. Смотрите сами, что осилите.
Учтите, что особо командной работы тут нет, вы просто будете допиливать какие-то мелочи.

Худший ответ:
искать надо  на  гитхабе  а  не  в  гугле
Вопрос: Unity Определить что находится над объектом?

Лучший ответ:
Если в плане простой реализации - вошёл в его зону... У финиша должен быть колайдер, вешаешб на него сценарий с методом OnCollisionEnter если это для 3д,для 2д так же само, впрочем это есть в документации юнити. 

Если надо чтобы проходил через финиш, но при этом срабатывал скрипт. Ставите в компоненте колайдера галочку IsTrigger и так же само работаете, но уже с методом OnTriggerEnter

Если прям нужно, чтобы проверить сверху ли игрок чем финиш, тогда возьмите точку "поверхности" финиша и сравняйте с позицией ног игрока, для такого игроку можно добавить game object в район области ног.

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

Худший ответ:
Если в плане простой реализации - вошёл в его зону... У финиша должен быть колайдер, вешаешб на него сценарий с методом OnCollisionEnter если это для 3д,для 2д так же само, впрочем это есть в документации юнити. 

Если надо чтобы проходил через финиш, но при этом срабатывал скрипт. Ставите в компоненте колайдера галочку IsTrigger и так же само работаете, но уже с методом OnTriggerEnter

Если прям нужно, чтобы проверить сверху ли игрок чем финиш, тогда возьмите точку "поверхности" финиша и сравняйте с позицией ног игрока, для такого игроку можно добавить game object в район области ног.

Но могу догадываться, что вам нужно просто узнать соприкосновения, но ладно,пускай будет.
Вопрос: Возможен ли встречный иск к разработчику ПО?

Лучший ответ:
промышленный шпионаж подразумевает извлечение прыбыли, прямой или косвенной, на основании полученных данных.
на основании каких-то данных, относящихся только к вашему софту - это аналитика, и это должно быть прописано в eula/лицензии/etc.
а по существу - в реалиях постсовка в суд можно подавать за что угодно; вердикт зависит только от степени крутости яиц и кошелька, ваших и оппонента.

Худший ответ:
 в использовании пиратского ПО на основании каких-то данных, которые ему это ПО отсылает Разработчик пиратского ПО хочет подать в суд. Хм.... Это из серии вор у вора шапку украл? Причем решают они проблему через суд..
Впрочем в реалиях постсовка  может быть что угодно.
Вопрос: Стоит ли тратить время на поддержку ie11(win10)? И если нет, то как это обосновать заказчику?

Лучший ответ:
1) Посмотреть аналитику по браузерам
2) Посмотреть, сколько пользователей данного браузера IE
3) Посчитать, сколько денег они приносят
4) Соотнести с затратами на разработку/поддержку

Худший ответ:
Стоит ли тратить время на поддержку ie11(win10)? И если нет, то как это обосновать заказчику?
На самом деле нужно определить использует ли ваш потенциальный клиент ie, и возможно исходя из этого обьяснить заказчику что браузер не совсем поддерживает современные технологии и его используют лишь для того чтобы скачать хром.
Вопрос: Где найти работу на вечер в Москве?

Лучший ответ:
Как можно работать ещё после офиса? Если хотите в it, то бросайте нынешнюю работу и идите туда. Нужно заниматься тем, что нравится.

Худший ответ:
В Москве не знаю, в интернете можно.
Вопрос: Удаленщики развиваются медленнее?

Лучший ответ:
Развитие специалиста определяется решаемыми им задачами, а не местонахождением опоры под его задницей.

Худший ответ:
Как вы считаете, удаленщики развиваются медленнее тех, кто работает в офисе, среди коллег?
Чушь.
Если человек хочет развиваться - он развивается независимо от того, где и как он работает. Если не хочет - не развивается, приходит на работу "платья выгуливать". У нас есть в конторе такая прости-Господи-сотрудница, все на пенсию никак не хочет уходить, хотя уже лет пять как может.
А то, что они называют себя "мы" - это вполне естественно - делиться на группы. Любая большая группа людей тут же (или очень быстро) делится на мелкие группы - не более 6 человек. По любому признаку, в том числе и по месту работы :)
Вопрос: Как создать отказоустойчивую локальную сеть за счет физического дублирования оборудования, но избегая «петли\зацикленности »?

Лучший ответ:
ПРОТОКОЛЫ РЕЗЕРВИРОВАНИЯ

Худший ответ:
если используются не хабы
Чо? Последний живой хаб я видел в 2006 году и то мне его достали откуда-то снизу кучи всякого устаревшего "добра"...
Вопрос: POST для получения данных?

Лучший ответ:
Насколько плохо использовать POST для получения данных и в боди передавать параметры? 
Филдинг, когда описывал архитектуру REST, ни слова говорил о методах http. С другой стороны, методы http настолько обобщены, что говорить о каком-то "правильном" использовании не приходится, но тем не менее, для получения более привычно использовать GET. Используя POST вы рискуете вызвать непонимание людей, которые будут поддерживать этот код. Но зачем?

Худший ответ:
POST - отлично подойдёт, особенно для десятка запросов и, т.к. такой подход уже используется в GraphQL, он - однозначно верный.
Я бы сделал именно так, используя контейнер JSON.