Все работает нормально для запросов на получение запросов , но запросы публикации в службу электронной почты висят на неопределенный срок и в конечном итоге сбой с развеванием. Br />
Код: Выделить всё
export const routes = {
Order: 'http://localhost:3001/api/Order',
Email: 'http://localhost:3002/api/Email',
User: 'http://localhost:3003/api/User',
};
< /code>
Вот мой контроллер API Gateway, который запрашивает прокси: < /p>
@Controller()
export class AppController {
constructor(private readonly appService: AppService) {}
@All('api/:service/*')
async proxy(
@Param('service') service: string,
@Req() req: Request,
@Res() res: Response,
@Body() body: any,
) {
console.log('Service:', service);
const path = req.url.replace(`/api/${service}`, '');
try {
const response = await this.appService.forwardRequest(req, res, body, path, service);
res.status(response.status).json(response.data);
} catch (error) {
console.error('Proxy request failed:', error);
return res.status(500).json({ message: 'Error forwarding request' });
}
}
}
Код: Выделить всё
async forwardRequest(
req: Request,
res: Response,
body: any,
path: string,
service: string,
): Promise {
const baseURL = routes[service];
const url = baseURL + path;
const configuredHeaders = this.httpHelper.configureHeaders(req.headers);
console.log('Forwarding request:', {
method: req.method,
url,
headers: configuredHeaders,
body: JSON.stringify(body),
});
return lastValueFrom(
this.http.request({
method: req.method,
url: url,
data: body,
headers: configuredHeaders,
timeout: 10000, // 10 seconds
}),
);
}
Когда я создал тестовую конечную точку В моей почтовой службе: < /p>
@Get('SendEmail')
sendEmailTest() {
console.log('Test log!');
return { message: 'Email sent!' };
}
< /code>
Он работал нормально через шлюз API, что означает, что проблема предназначена только для запросов POST.
Подробнее здесь: https://stackoverflow.com/questions/794 ... definitely
Мобильная версия