vsql_http는 쿼리 안에서 HTTP 요청을 보냅니다. 트리거가 웹훅을 호출하고,
SELECT가 API에서 행을 보강하고, 예약된 이벤트가 요약을 어딘가로 보낼 수
있으며, 그 사이에 애플리케이션 계층이 필요 없습니다. libcurl 기반으로 빌드되었고
모든 응답을 JSON으로 반환합니다.
설치
설치 스크립트, Docker 이미지 또는 릴리스 tarball로 VillageSQL을 설치했다면vsql_http.veb는 이미 서버의 lib/veb/ 디렉터리에 있습니다. 문 하나로 서버에
설치하세요:
추가되는 기능
모든 요청 함수는 네 개의 필드status, content_type, headers, content를
가진 JSON 객체 하나를 반환합니다. 연결 거부나 시간 초과처럼 완료할 수 없는
요청은 NULL을 반환하고 curl의 오류 메시지를 담은 경고를 발생시킵니다:
http_request의 method 인수는 GET, HEAD, POST, PUT, DELETE, CONNECT,
OPTIONS, TRACE, PATCH를 대소문자 구분 없이 매칭하여 대문자로 보냅니다. 그 외의
메서드는 지정한 그대로 보냅니다.
예제
URL을 가져와서 응답에서 필드 두 개를 읽습니다:VillageSQL 0.0.6 이하에서는 응답이 binary 문자 집합을 가집니다. JSON 함수나
JSON 열이 이를 거부하므로, 위의 예제에서 CONVERT를 빼면 해당 버전에서
ERROR 3144 (22032): Cannot create a JSON value from a string with CHARACTER SET 'binary'. 오류로 실패합니다. JSON_OBJECT()나 JSON_ARRAY() 안에서는
허용되지만 대신 base64로 인코딩됩니다. 해당 버전에서는
CONVERT(... USING utf8mb4)를 유지하세요. 0.0.7 이상에서는 필요하지 않지만
해롭지도 않습니다.참고 항목
- MySQL에서 HTTP 요청 보내기 — 시간 제한, 오류 처리, 응답 읽기
- MySQL에서 웹훅 보내기 — 트리거에서 요청 보내기
- REST API로 행 보강하기 — 쿼리를 외부 서비스와 조인하기
- 확장 기능 설치 —
INSTALL EXTENSION의 동작 방식과 서버가 번들을 찾는 위치 - 사용 가능한 확장 기능 — 전체 카탈로그
- villagesql/vsql-http — 소스, 빌드 지침, 알려진 제한 사항