'Missing or invalid id_cliente']); exit; } $api = VisualLimsApiClient::getInstance(); // Build endpoint with OData $expand WITHOUT encoding '$' as %24 $endpoint = "Cliente($idCliente)?\$expand=Responsabili"; // Debug URL (real final URL) $base_url = 'https://93.43.5.102/limsapi/api/odata/'; $full_url = $base_url . $endpoint; file_put_contents(__DIR__ . '/last_url.txt', $full_url . PHP_EOL, FILE_APPEND); // Call API: options must be empty because expand is already in endpoint $data = $api->get($endpoint, []); file_put_contents(__DIR__ . '/cliente_responsabili_response.json', json_encode($data, JSON_PRETTY_PRINT)); // Return only the list (standard shape used by the frontend) $responsabili = $data['Responsabili'] ?? []; echo json_encode(['value' => $responsabili]); } catch (Exception $e) { file_put_contents(__DIR__ . '/error_log.txt', date('Y-m-d H:i:s') . ' - ' . $e->getMessage() . PHP_EOL, FILE_APPEND); http_response_code(500); echo json_encode(['error' => $e->getMessage()]); }