Проблема: возникла очень странная ошибка, когда наша служба A (laravel php) вызывает конечную точку службой B (nodejs typcript + ajv + nestjs).
Позвольте мне объяснить это ниже.
Пример кода в службе A для построения параметров запроса
$ids = [1,2,3];
$queryParams = http_build_query(['ids' => $ids]);
dump($queryParams)
// ids%5B0%5D=1&ids%5B1%5D=2&ids%5B2%5D=3
// b.com/bar?ids[0]=1&ids[1]=2&ids[2]=3
В службе B ожидаемые полученные параметры запроса должны быть
{ ids: [1,2,3] }
В dev он работал хорошо, код был развернут в производство, затем мы начали видеть ошибки проверки из НЕКОТОРЫХ запросов , потому что параметры запроса теперь
{
ids: {
'0' : '1',
'1' : '2',
'2' : '3'
}
}
Мы уверены, что последний код развернут во всех экземплярах, так что исключается возможность различия кода в службе A , вызывающей разницу в отправляемых параметрах запроса.
Целый день провел 1 день, пытаясь выяснить первопричину, но до сих пор не получил ответов.
Вопрос: В каком формате могут быть отправлены параметры запроса для его анализа в приведенной выше структуре объекта?