Я новичок в разработке API, и я только начал создавать POC моего проекта в соответствии с требованиями моего проекта
1. Я получаю запрос от пользователя на основе этого Запроса.
2. Я должен просить нескольких других провайдеров, используя API, предоставленный ими (по крайней мере, 8-10) для каждого запроса, который я получу от пользователя.
3. Получите некоторую информацию из моей базы данных.
4. Преобразуйте весь ответ другого сервера и информацию, которую я извлекаю из My DB в JSON, и верните ее пользователю, который его запросил.
Я написал этот код в основном PHP, но производительность не доходит до отметки, которую он занимает около 2,5 секунд, отвечая на вопрос пользователя, который очень медленный. На каком языке будет лучше создавать такой API, если я должен выбрать любой другой язык или придерживаться только PHP, но используя определенные рамки и методы, которым я должен следовать, что может помочь мне улучшить производительность моего API?
Я бы рекомендовал использовать три подхода к производительности: измерить, измерить и измерить.
Там вы можете улучшить работу с небольшой работой в этом стеке; его несколько простой, логичный и не имеет слишком много движущихся частей.
Начните с измерения таких вещей, как время выполнения SQL-запросов, сколько времени требуется вашему приложению для форматирования ответа JSON и сколько времени от начала до завершения приложения требуется, чтобы вернуть ответ. Вы можете сделать это с помощью простого PSR-совместимого регистрационного пакета, такого как монолог.
Знание этих измерений поможет вам ответить на такие вопросы, как:
Вы можете получить более подробную информацию о времени и журнале в файле, просмотрев профилирование приложений. Там особенно хорошая публикация SO, в которой описывается, как подойти к этому.
TL;DR; не просто изучайте новый язык/стек, потому что он может быть быстрее. Если вы действительно хотите, чтобы я смотрел на такой язык, как Go (его можно было легко перенести с фона PHP). Но делайте это только в том случае, если это правильное решение для вашей заявки и бизнеса; внедрение новых технологий означает, что вам нужно будет поддерживать его через несколько месяцев.
Если это происходит медленно, это, вероятно, связано с добавленным временем отклика ваших служб предоставления информации. Поэтому использование другого языка, вероятно, малопригодно. Рассмотрите возможность сохранения/кэширования ответа, так что сетевое обратное соединение не принимается каждый раз.