메인 콘텐츠로 건너뛰기
vsql_rest는 데이터베이스 프로세스 안에서 HTTP로 테이블을 제공합니다. 클라이언트는 연결 대신 URL로 행을 읽고, 쿼리 매개변수로 필터링하며, /rpc/ 아래에서 저장 함수를 호출합니다. 작성할 애플리케이션도, 실행할 두 번째 프로세스도 없습니다.
이 확장 기능은 미리 보기 기능을 사용하므로 vsql_allow_preview_extensions가 ON이어야 합니다. 서버를 --vsql_allow_preview_extensions=ON으로 시작하거나 SET PERSIST vsql_allow_preview_extensions = ON을 실행하세요. 그렇지 않으면 INSTALL EXTENSION이 거부됩니다.

설치

설치 스크립트, Docker 이미지 또는 릴리스 tarball로 VillageSQL을 설치했다면 vsql_rest.veb는 이미 서버의 lib/veb/ 디렉터리에 있습니다. 문 하나로 서버에 설치하세요:
설치되었는지 확인합니다:
직접 빌드하려면 저장소의 빌드 지침을 따르세요.

추가되는 기능

SQL 함수는 추가하지 않습니다. SET GLOBAL로 구성하며, 응답하는 모든 요청은 HTTP로 들어옵니다.

예제

리스너는 시작할 때 데이터베이스 레이아웃을 캐시하고 schema_ttl초 동안 유지하므로, 테이블을 먼저 만듭니다:
그런 다음 데이터베이스와 테이블을 지정하고 리스너를 켭니다:
HTTP로 테이블을 읽습니다:
쿼리 매개변수로 필터링합니다:
설정을 끄면 포트가 닫힙니다:
기본값은 인증을 끄고, 모든 테이블을 제공하며, 지원하는 모든 HTTP 메서드(GET, POST, PATCH, DELETE)를 허용하고, 리스너는 시작하는 순간부터 모든 인터페이스에 바인딩됩니다. 그러면 호스트에 접근할 수 있는 모든 것이 스키마의 모든 테이블을 읽고 쓸 수 있습니다. 리스너를 켜기 전에 allowed_tables, table_methods, require_auth를 설정하고, JWT 비밀 값이나 공개 키를 구성하고, 포트를 방화벽 뒤에 두세요. 바인드 주소 설정은 없습니다.
SET PERSIST로 쓴 설정은 재시작 후에도 유지되지만, UNINSTALL EXTENSION이 이를 삭제합니다. 제거 후 다시 설치하면 모든 설정이 기본값으로 돌아가며, 재시작해도 이전 값은 돌아오지 않습니다.
모든 문자열 설정은 서버를 통해 다시 읽히며, 서버는 최대 1022바이트를 반환합니다. 이보다 긴 schema, allowed_tables, allowed_routines, table_methods, jwt_secret 또는 jwt_public_key는 모든 요청을 500으로 실패하게 하고, 이보다 긴 ssl_cert나 ssl_key는 리스너가 시작되지 못하게 합니다.

참고 항목