Developer · Hosting

DB API 사용법

호스팅 탭에서 발급한 Bearer 토큰으로 본인 MariaDB에 HTTPS POST로 제한된 SQL을 실행합니다. SSH·SFTP 없이 앱·에이전트에서 DB를 다룰 때 사용합니다.

개요

  • 본인 스키마({아이디} DB)만 사용합니다.
  • POST + JSON + Authorization: Bearer zyo_…
  • 한 요청에 SQL 한 문만 실행할 수 있습니다.
  • 주석(--, /* */, #)은 사용할 수 없습니다.

토큰 발급

  1. 포털 로그인 후 호스팅 탭을 엽니다.
  2. DB API 토큰에서 토큰 발급을 누릅니다.
  3. 표시되는 zyo_ 로 시작하는 문자열을 안전한 곳에 저장합니다. 지금 한 번만 보입니다.
  4. 활성 토큰은 계정당 최대 5개입니다. 필요 없으면 전체 폐기 후 다시 발급하세요.

토큰이 유출되면 본인 DB에 쓰기·삭제가 가능합니다. 공개 저장소·채팅에 올리지 마세요.

엔드포인트

URL
https://zyo.kr/api/db_api.php
Method
POST only
Auth
Authorization: Bearer zyo_<48 hex>
Content-Type
application/json; charset=utf-8

요청 형식

{
  "sql": "SELECT DATABASE() AS db"
}

query 키도 sql 과 동일하게 받을 수 있습니다. 최대 약 8,000자.

응답 형식

공통: ok: true|false. 실패 시 error, message.

조회 (SELECT / SHOW / DESCRIBE / EXPLAIN)

{
  "ok": true,
  "username": "myid",
  "database": "myid",
  "domain": "zyo.kr",
  "type": "resultset",
  "columns": ["db"],
  "rows": [{ "db": "myid" }],
  "row_count": 1
}

변경 (INSERT / UPDATE / DELETE / DDL)

{
  "ok": true,
  "username": "myid",
  "database": "myid",
  "domain": "zyo.kr",
  "type": "ok",
  "message": "executed",
  "raw": "…"
}

허용·금지 SQL

허용

  • SELECT · SHOW · DESCRIBE · DESC · EXPLAIN
  • INSERT · UPDATE · DELETE
  • CREATE TABLE · ALTER TABLE · DROP TABLE · TRUNCATE TABLE

금지 예시

  • 다른 DB 참조 · USE
  • DROP/CREATE DATABASE, 사용자·권한 변경
  • LOAD DATA · INTO OUTFILE · LOAD_FILE
  • INFORMATION_SCHEMA · SLEEP · 주석
  • 한 요청에 여러 문(; 구분)

예제

cURL

curl -sS -X POST 'https://zyo.kr/api/db_api.php' \
  -H 'Authorization: Bearer zyo_YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"sql":"SELECT DATABASE() AS db"}'

JavaScript (fetch)

const res = await fetch('https://zyo.kr/api/db_api.php', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer zyo_YOUR_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ sql: 'SELECT 1 AS n' }),
});
const data = await res.json();
if (!data.ok) throw new Error(data.message || 'API error');
console.log(data.rows);

Python

import requests

r = requests.post(
    'https://zyo.kr/api/db_api.php',
    headers={
        'Authorization': 'Bearer zyo_YOUR_TOKEN',
        'Content-Type': 'application/json',
    },
    json={'sql': 'SHOW TABLES'},
    timeout=30,
)
print(r.json())

테이블 만들기

{
  "sql": "CREATE TABLE notes (id INT AUTO_INCREMENT PRIMARY KEY, body TEXT, created_at DATETIME DEFAULT CURRENT_TIMESTAMP)"
}

한도 · 보안

  • 정회원(호스팅 이용 가능) 계정만 토큰이 유효합니다.
  • 토큰 폐기 즉시 API 호출이 거부됩니다.
  • 서버 감사 로그에 실행 SQL 앞부분이 기록될 수 있습니다.
  • 에이전트·앱에 넣을 때는 환경 변수로 토큰을 주입하세요.

호스팅에서 토큰 발급 포털 홈