Пилю микросервис по паттерну BFF
И есть у меня прокси, где я беру url запрос и проверяю куда его перенаправить
protected const API_V1_user_PATTERN = '#/api/internal/web/rest/v1/user/(\d+)$#u';
protected const API_V1_user_up_PATTERN = '/api/internal/rest/v1/user/%d/update/%d';
protected const API_V1_REST_user_PATTERN = '#/api/internal/rest/web/rest/v1/user/(\d+)$#u';
protected const API_V1_REST_user_up_PATTERN = '#/api/internal/rest/web/rest/v1/user/%d/update/%d$#u';
//...
if (preg_match(self::API_V1_user_PATTERN, $this->uri, $matches) === 1) {
return new ProxyConfigDto(
$this->host,
sprintf(self::API_V1_REST_user_PATTERN, (int)$matches[1])
);
}
if (preg_match(self::API_V1_user_up_PATTERN, $this->uri, $matches) === 1) {
return new ProxyConfigDto(
$this->host,
sprintf(self::API_V1_REST_user_up_PATTERN, (int)$matches[1])
);
}
И таких кусков много у меня выходит. Естественно при больших количествах запросов это не то что бы замедляет, но смотрится "неприятно".
И вопрос, как можно избавиться от регулярок для проверки урлов?
p.s. все константы и урлы заменены для примера