내 응용 프로그램이 여러 마이크로 서비스로 구성되어 있으며 현재 API 게이트웨이 및 권한 부여 마이크로 서비스에 대해 작업 중입니다. 들어오는 각 요청은이 작업을 수행 할 수있는 사용자의 권한에 따라 유효성이 검사되고 권한이 부여됩니다. 동사 (GET, POST, PUT, DELETE)와 ENDPOINT (/ interpretations/q44nAj91aH6nd/)로 구성된 활동이 있습니다.MySQL 필드에 정규식 패턴을 저장하고 입력을 검사하려면 어떻게해야합니까?
모든 활동을 나열한 MySQL 표가 있으며 사용자 요청의 끝점을 일치 항목과 일치시키고 싶습니다 테이블에서 활동 (행). 나는이 주어진 요청의 엔드 포인트에 대한 행이 일치 수있는 방법을 내 질문은
CREATE TABLE `activities` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`url` varchar(255) NOT NULL DEFAULT '',
`method` varchar(20) NOT NULL DEFAULT 'GET',
`url_regex` varchar(255) DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `activities` (`id`, `url`, `method`, `url_regex`)
VALUES
(1,'/interpretations/','POST',''),
(2,'','GET','/interpretations/[a-Z0-9]+/');
: /interpretations/q44nAj91aH6nd/
(정규식 패턴 /interpretations/[a-Z0-9]+/
과 일치해야합니다). 나는 아래하려고하면
, 그것은 작동하지 않습니다 다음 RLIKE 및 입력 데이터가 이전되어 후에 MYSQL에서 정규식 패턴이 올
SELECT * FROM `activities` WHERE `url_regex` RLIKE "/interpretations/q44nAj91aH6nd/";
# also tried inverting
SELECT * FROM `activities` WHERE "/interpretations/q44nAj91aH6nd/" RLIKE `url_regex`;
여전히 작동하지 않습니까? 그때 패턴이 틀렸어? – Lazhar
예; 이 –