돌려 철도 SQL 쿼리를 REST API 엔드포인트
쿼리 빌더에서 쿼리를 저장하려면 클릭하세요. 새로운 엔드포인트그리고 api.querystreams.com이라는 URL과 해당 키가 있습니다. SQL은 이미 Railway 데이터베이스와 연결된 에이전트에서 읽기 전용으로 실행됩니다. 호출자는 JSON 또는 CSV 형식의 응답을 받게 되며 SQL 쿼리, 스키마 또는 비밀번호는 전혀 볼 수 없습니다. 호스팅할 것도 없고 포트를 열 필요도 없습니다. 저장된 쿼리에서 약 90초 정도 소요되며, 무료 플랜으로 첫 번째 엔드포인트를 사용할 수 있습니다.
당신이 최종적으로 얻게 될 것
URL api.querystreams.com 저장된 Railway 쿼리의 행을 JSON 또는 CSV 형식으로 키를 가진 모든 사용자에게 반환하는 기능입니다. 공유하기 전에 포털 콘솔에서 테스트를 거쳤습니다. 예시는 다음과 같습니다.
| 열쇠 | 값 | 설명 |
|---|---|---|
도시 끈 선택 과목 | 시애틀 | 저장된 쿼리에서 호출 가능한 필터 |
X-API-키 | qsapi_AB•••••••••• | 비밀 토큰 |
{
"도시": "시애틀"
}| 헤더 | 값 | 설명 |
|---|---|---|
X-API-키 | qsapi_AB•••••••••• | 사용자 고유의 비밀 토큰입니다. 발신자 한 명당 하나씩 사용 가능하며, 언제든지 취소할 수 있습니다. |
콘텐츠 유형 | 애플리케이션/json | 매개변수는 JSON 본문으로 전송됩니다. |
수용하다 | 애플리케이션/json | JSON 형식으로 응답합니다. 텍스트/CSV를 요청하면 CSV 형식이 반환됩니다. |
curl -X POST "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19" \ -H "X-API-Key: qsapi_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"city": "Seattle"}'{
"컬럼": [ { "이름": "고객 ID", "유형": "정수" }, { "이름": "이름", "유형": "끈" }, { "이름": "도시", "유형": "끈" } ],
"행": [
{ "고객 ID": 1042, "이름": "노스윈드 트레이더스", "도시": "시애틀" },
{ "고객 ID": 1057, "이름": "알파인 아웃피터스", "도시": "덴버" },
{ "고객 ID": 1063, "이름": "하버 푸드", "도시": "핼리팩스" }
],
"메타": { "행 개수": 3, "에이전트_지속시간_밀리초": 41, "요청 ID": "req_7Hq2mKd9" }
}| 헤더 | 값 | 설명 |
|---|---|---|
콘텐츠 유형 | application/json; 문자 집합=utf-8 | 본문 탭의 봉투 |
콘텐츠 길이 | 412 | 반환된 바이트 수; 위의 크기 배지 |
Railway는 클라우드에 데이터를 저장하고, 해당 클라우드 환경은 공급업체가 운영합니다. 누군가 자신의 앱, 대시보드 또는 스크립트에서 데이터의 일부를 사용하고 싶어 할 때, 기존의 해결책들은 너무 많은 권한을 넘겨주는 방식입니다. 예를 들어 프로젝트 기간보다 오래 지속되는 데이터베이스 로그인 정보, 아침이 되면 이미 오래된 데이터가 되어버리는 야간 데이터 내보내기, 또는 누군가가 직접 실행하고 패치해야 하는 소규모 API 서버 등이 있습니다. Query Streams는 엔드포인트를 저장된 쿼리와 키로 구성합니다. Railway PostgreSQL 데이터베이스와 이미 연결된 에이전트가 쿼리를 실행하고, api.querystreams.com에서 키와 요청 제한을 확인한 후, 호출자는 결과를 받아볼 수 있습니다. SQL 쿼리, 스키마 및 자격 증명은 절대 사용자 계정 외부로 유출되지 않습니다.
필요한 것
Query Streams 계정
모든 플랜에는 REST API가 포함되어 있습니다. 무료 플랜은 엔드포인트 1개, 키 2개, 호출당 250개 행을 제공하며, 이는 이 가이드를 작성하는 데 충분합니다. 가입은 다음 링크에서 하세요. my.querystreams.com.
철도 연결이 추가된 상시 접속형 컴퓨터의 에이전트
인터넷 접속만 있으면 됩니다.
쿼리 빌더에 저장된 쿼리
엔드포인트는 저장된 쿼리 하나만 래핑합니다. SELECT 문을 작성하고 한 번 실행한 다음 저장하세요. 동적 필터(a)를 추가하세요. @variable (WHERE 절에서) 호출자가 필터링할 수 있어야 합니다.
엔드포인트를 생성할 수 있는 사람은 누구인가요? 소유자, 관리자 및 제작자. 만약 API 상단 바에 해당 항목이 누락되었습니다. 관리자가 해당 사용자에게 해당 항목을 활성화할 수 있습니다. 계정 → 권한엔드포인트를 공유하는 모든 사용자는 요금제와 관계없이 Query Streams 계정만 있으면 됩니다.
네 단계로 설정하세요
-
쿼리를 저장하세요
~ 안에 쿼리 빌더 원하는 철도 연결을 선택하고, 게시할 SELECT 쿼리를 작성한 다음, 한 번 실행하여 행을 확인하세요. 호출자가 필요로 하는 열만 포함하도록 쿼리를 작성하면 엔드포인트는 쿼리 결과를 그대로 반환합니다.
저장된 쿼리 · 고객선택 고객 ID, 이름, 도시 FROM 공개 고객 주문하다 에 의해 이름 LIMIT 100;
발신자가 필터링할 수 있도록 하려면 동적 필터를 추가하세요. 예를 들어...
도시 = @city인 경우. 각@variable3단계에서 API 매개변수가 됩니다. 클릭하세요. 저장 그리고 쿼리에 이름을 지정하세요. 그 이름이 엔드포인트의 표시 이름이 됩니다. -
엔드포인트를 생성합니다
열려 있는 API 상단 바에서 클릭하세요 새로운 엔드포인트마법사는 네 단계를 거칩니다. 쿼리 선택, 구성, 잠금 매개변수 그리고 공유. 에 쿼리 선택방금 저장한 쿼리를 클릭하세요. 상담원이 오프라인인 쿼리는 회색으로 표시됩니다. 다음.
지름길. 쿼리 빌더에서 열려 있는 쿼리를 직접 노출할 수 있으며, 그러면 마법사가 시작됩니다. 구성 쿼리가 이미 선택된 상태입니다.
-
매개변수를 구성하고 잠급니다.
~에 구성 첫 번째 엔드포인트에 대해서는 기본 설정이 올바릅니다. 표시 이름 쿼리에서 채워졌습니다. 수명 영구적 (선택) 만료 중 (일시적인 지분의 경우) 응답 모드 정적(JSON 응답 하나; 선택) 스트리밍 플랜의 고정 행 제한을 초과하는 결과를 얻으려면) 내부 형식 JSON 형식입니다. 응답 모드와 형식은 생성 후 고정되므로 여기서 결정하세요. 클릭하세요. 다음.
~에 잠금 매개변수 쿼리에 사용된 모든 동적 필터가 나열됩니다. 호출자가 설정할 수 있는 필터는 그대로 두십시오. 호출 가능 그리고 각각에게 쿼리 문자열 이름; 체크 필수의 만약 이 값이 없으면 호출이 실패할 것입니다. 호출자가 변경해서는 안 되는 값을 고정하십시오. 잠김또는 다음과 같은 데이트 시나리오 월초. 숨겨진 쿼리 자체의 기본값을 유지하고 기본값 설정 시도를 거부합니다. 클릭하세요. 다음.
-
공유하고 키를 받으세요
~에 공유 초대할 수 있습니다 사람들 이메일로 보내시거나 추가해 주세요. 서비스 키 서버 또는 자동화 도구를 선택하거나, 지금은 둘 다 건너뛸 수도 있습니다. 클릭하세요. 키를 생성하고 받으세요성공 화면에는 엔드포인트 URL과 키가 표시됩니다. 키는 49자로 시작하는 문자열입니다.
qsapi_복사해 두세요. 나중에 엔드포인트에서 다시 확인할 수 있습니다. 공유 탭을 저장해두면 화면을 닫아도 탭 내용이 사라지지 않습니다.클릭 보내다 콘솔에서 포털 자체에서 첫 번째 호출을 수행합니다. 응답 창에는 다음이 표시됩니다. 상태, 시간 그리고 크기, 그 몸 탭에는 JSON이 표시되고, 호출은 해당 위치에 나타납니다. 활동 몇 초 후에 탭을 누르세요.
그게 다예요. 이제 철도 PostgreSQL 데이터베이스는 사용자가 제공하는 키에 대해 읽기 전용 URL로 응답합니다. 아무것도 설치되지 않았고, 포트도 열리지 않았으며, SQL은 사용자 계정에 그대로 유지됩니다.
어디에서든 전화하세요
콘솔의 URL 표시줄에 있는 엔드포인트 ID로 해당 부분을 바꾸세요. qsapi_YOUR_KEY 키를 사용하세요. 호출 가능한 매개변수는 GET 요청 시 쿼리 문자열에 포함됩니다. 여기에 저장된 쿼리가 표시됩니다. 도시:
curl "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19?city=Seattle" \ -H "X-API-Key: qsapi_YOUR_KEY"
{
"컬럼": [ { "이름": "고객 ID", "유형": "정수" }, { "이름": "이름", "유형": "끈" }, { "이름": "도시", "유형": "끈" } ],
"행": [
{ "고객 ID": 1042, "이름": "노스윈드 트레이더스", "도시": "시애틀" },
{ "고객 ID": 1057, "이름": "알파인 아웃피터스", "도시": "덴버" },
{ "고객 ID": 1063, "이름": "하버 푸드", "도시": "핼리팩스" }
],
"메타": { "행 개수": 3, "에이전트_지속시간_밀리초": 41, "요청 ID": "req_7Hq2mKd9" }
}행은 열 이름을 키로 하는 객체로 반환되며, 열 목록과 함께 표시됩니다. 메타 이 블록에는 행 수, 결과 잘림 여부, 그리고 지원 요청 시 인용할 수 있는 요청 ID가 표시됩니다. POST 요청과 동일한 방식으로 호출하면 매개변수가 JSON 본문에 담겨 전송되는데, 이는 긴 값 목록에 적합한 방식입니다.
curl -X POST "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19" \ -H "X-API-Key: qsapi_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"params": {"city": "Seattle"}}'?format=csv- JSON 형식이 아닌 CSV 형식이며, 헤더 행이 포함되어 있습니다.
허용 형식: 텍스트/CSV마찬가지로 작동합니다. 스트리밍 엔드포인트는 마지막에 NDJSON(한 줄에 하나의 JSON 객체)을 반환합니다.{"_summary": true, "row_count": N}줄; 마지막 줄을 확인하세요. ?샘플=true- 최대 5줄까지 사용 가능하며, 요금은 부과되지 않습니다. 고객 연결 작업에 유용합니다.
?compression=lz4- 디코더가 내장된 고용량 통화용 LZ4 프레임 본체; 암호 탭에는 언어별 디코더 스니펫이 있습니다. 일반 gzip 압축은 클라이언트가 전송할 때 자동으로 수행됩니다.
Accept-Encoding: gzip. 인증: Bearer qsapi_…- 별칭으로 인정됨
X-API-키브라우저 코드에서 사용하세요.
플러그를 꽂는 곳
엑셀과 파워 BI
내보내기 → 파워 쿼리 M(.pq) 이 기능을 사용하면 미리 만들어진 쿼리를 얻을 수 있습니다. 이 쿼리를 고급 편집기(Excel: 데이터 → 데이터 가져오기 → 다른 원본 → 빈 쿼리; Power BI: 홈 → 데이터 변환 → 새 원본 → 빈 쿼리)에 붙여넣고 자리 표시자를 원하는 쿼리로 바꾸세요. qsapi_ 열쇠.
포스트맨, 불면증, 홉스콧치
같은 내보내다 메뉴를 통해 Postman v2.1 컬렉션, Insomnia v5 내보내기 또는 Hoppscotch 컬렉션을 매개변수와 키 자리 표시자와 함께 다운로드할 수 있습니다.
직접 작성한 코드
그만큼 암호 이 탭에는 cURL, Python, JavaScript, TypeScript, Java, C#, Go, PHP, PowerShell 및 Ruby에 대한 작동 예제가 있습니다. 내보내기 → OpenAPI 3.1 사양 클라이언트 생성기 또는 Swagger UI에 데이터를 제공합니다.
n8n, Zapier, Make, cron
생성하세요 서비스 키 해당 도구를 사용하려면 URL과 키를 HTTP 노드에 붙여넣고 일정을 예약하세요. 각 도구에는 고유한 키가 부여되므로 다른 도구에 영향을 주지 않고 하나의 키를 취소할 수 있습니다.
계획이 허용하는 것
| 계획 | 엔드포인트 | 엔드포인트당 키 | 엔드포인트당 인원 | 호출당 행 수(정적) | 호출당 행 수(스트리밍) | 분당 통화 횟수, 키당 통화 횟수 |
|---|---|---|---|---|---|---|
| 무료 | 1 | 2 | 1 | 250 | 250 | 3 |
| 개인적 핵심 | 2 | 3 | 2 | 5,000 | 250,000 | 15 |
| 퍼스널 플러스 | 5 | 5 | 5 | 10,000 | 500,000 | 30 |
| 비즈니스 코어 | 5 | 10 | 10 | 50,000 | 1,000,000 | 300 |
| 비즈니스 플러스 | 10 | 20 | 25 | 100,000 | 5,000,000 | 600 |
| 비즈니스 맥스 | 25 | 30 | 50 | 250,000 | 10,000,000 | 600 |
| 엔터프라이즈 코어 | 50 | 50 | 100 | 500,000 | 25,000,000 | 1,000 |
| 엔터프라이즈 플러스 | 100 | 100 | 250 | 1,000,000 | 50,000,000 | 1,000 |
| 엔터프라이즈 맥스 | 250 | 200 | 500 | 2,500,000 | 100,000,000 | 1,500 |
모든 호출에는 60초의 고정 쿼리 시간 제한과 8MiB의 응답 용량 제한이 있으며, 반환되는 바이트 수는 사용자의 요금제 월별 데이터 허용량에 포함됩니다. 이 허용량은 Excel 및 Google Sheets 추가 기능에서 사용하는 것과 동일합니다. 무료 요금제는 엔드포인트 1개와 월 5MB의 데이터 허용량을 제공하며, 이는 하루에 여러 번 호출되는 작은 테이블을 처리하기에 충분합니다. 가격 페이지를 참조하세요. 계획별 수당에 대해서.
무료는 한 번 시작하면 계속 사용할 수 있는 플랜입니다. 체험 기간은 만료되지 않습니다. 자세한 내용은 다음에서 확인하세요. 가격 페이지.
안전하게 보관하기
SQL은 당신의 소유로 남습니다.
호출자는 행만 수신합니다. 쿼리, 테이블 이름 또는 연결 세부 정보는 볼 수 없으며 엔드포인트에서 실행되는 내용을 변경할 수도 없습니다.
하나의 키, 하나의 엔드포인트, 하나의 호출자
키는 정확히 하나의 엔드포인트에서만 작동합니다. 각 사용자 또는 도구에 고유한 키를 부여하면 모든 통화 기록이 해당 키에 기록됩니다. 키를 취소해도 나머지 키는 계속 사용할 수 있으며, 취소는 약 5분 후에 적용됩니다.
읽기 전용, 벽 안쪽(사용자 측)
에이전트는 저장된 SELECT 문 하나만 실행하며, 네트워크 내부에서 자체 아웃바운드 연결을 통해 다른 작업은 수행하지 않습니다. 인터넷에서 포트를 열거나 자격 증명을 입력할 필요가 없습니다.
장부에 기록된 모든 통화
그만큼 활동 탭에는 거부된 통화를 포함하여 각 통화의 시간, 수신자, 상태, 행 수, 바이트 수 및 지속 시간이 표시됩니다. 설정 만료 중 임시 공유의 수명은 일정 날짜에 만료되며, 엔드포인트는 해당 날짜에 자동으로 꺼집니다.
무언가가 작동하지 않을 때
| 상태 | 암호 | 어떻게 해야 할까요? |
|---|---|---|
| 401 | API_KEY_필수 / API_KEY_무효 | 헤더가 누락되었거나 키가 잘못되었습니다. 보내기 X-API 키: qsapi_…49자 전체입니다. 키는 엔드포인트의 공유 탭에서 다시 복사할 수 있습니다. |
| 403 | API_KEY_ENDPOINT_MISMATCH | 다른 엔드포인트에서 사용되는 유효한 키입니다. 각 키는 하나의 엔드포인트에 속합니다. |
| 403 | API_KEY_REVOKED / API_ENDPOINT_EXPIRED | 키가 취소되었거나 엔드포인트의 만료일이 도래했습니다. 새 키를 발급하거나 엔드포인트를 복원하십시오. |
| 400 | API_PARAM_NOT_OVERRIDABLE | 소유자가 호출 가능(Callable)으로 표시하지 않은 매개변수를 전송했습니다. 본문에는 허용된 이름 목록이 있습니다. |
| 414 | API_쿼리가 너무 큽니다 | GET 쿼리 문자열에 8KB 또는 200개의 리스트 값이 전달되었습니다. 동일한 매개변수를 POST JSON 본문으로 전송하십시오. |
| 413 | API_출력이 너무 큽니다 | 결과가 8MiB 제한을 초과했습니다. 쿼리 범위를 좁히거나 엔드포인트를 스트리밍으로 변경하십시오. |
| 429 | API_RATE_LIMITED | 현재 키 또는 엔드포인트에 대한 문의 전화가 너무 많습니다. 잠시 기다려 주십시오. 재시도 후 초, 또는 올리세요 요금 제한 플랜 내 API 설정 → 기본값에서 확인할 수 있습니다. |
| 429 | API_DATA_REALM_EXHAUSTED | 소유자의 월별 데이터 사용량이 소진되었습니다. 사용량은 다음 청구월에 초기화됩니다. 더 많은 데이터를 원하시면 업그레이드하세요. |
| 503 | API 에이전트가 연결되지 않았습니다 | 철도 데이터베이스를 담당하는 에이전트가 오프라인 상태입니다. 데이터 → 데이터 에이전트에서 확인하세요. 에이전트가 다시 연결되면 통화가 다시 정상적으로 작동합니다. |
| 504 | API_QUERY_TIMEOUT | 쿼리 실행 시간이 60초 이상 걸렸습니다. 필터나 인덱스를 추가하거나, 조건을 좁혀 다시 쿼리를 실행해 보세요. |
모든 오류체는 다음과 같은 형태를 가지고 있습니다. {"오류": {"코드": "…", "메시지": "…"}} 그리고 모든 답변에는… X-QS-요청 ID 헤더. 지원팀에 문의할 때는 ID를 따옴표로 묶어주세요.
사람들이 묻는 질문
내 데이터가 쿼리 스트림으로 복사되나요?
아니요. 상담원은 데이터가 있는 위치에서 쿼리를 실행하고 요청된 행만 전송합니다. 중간에 동기화나 캐시되는 것은 없으며, 모든 호출은 쿼리를 실행합니다.
호출자가 SQL을 변경하거나 다른 테이블을 요청할 수 있나요?
아니요. 엔드포인트는 저장된 쿼리를 하나만 실행합니다. 호출자는 사용자가 표시한 매개변수만 설정할 수 있습니다. 호출 가능또한 값은 안전하게 바인딩됩니다. 텍스트는 따옴표로 묶이고 이스케이프 처리되며, 숫자는 범위 검사를 거치고, 목록은 확장됩니다.
이것을 어떻게 파트너에게 전달하나요?
엔드포인트에서 공유 탭 선택 사람들 그리고 그들의 이메일을 입력하세요. 그러면 그들은 마법의 링크를 받게 되고, 그 주소로 로그인하여(무료 계정도 괜찮습니다) 자신만의 키를 생성합니다. 활동 탭에서 그들의 통화 내역을 이름으로 확인할 수 있습니다. 서버나 자동화 도구의 경우, 다음을 생성하세요. API 키 대신 라벨을 붙입니다.
저장된 쿼리를 수정하면 어떻게 되나요?
엔드포인트는 다음 호출 시 새 SQL을 실행하고 OpenAPI 사양을 다시 생성합니다. URL과 키는 변경되지 않습니다. 필터를 추가하거나 제거한 경우 다시 확인하십시오. 잠금 매개변수 발신자가 올바른 매개변수를 볼 수 있도록 합니다.
무료 플랜으로 이 모든 기능을 이용할 수 있나요?
네. 무료 플랜은 만료되는 체험판이 아니라 계속 사용할 수 있는 플랜입니다. 엔드포인트 1개, 키 2개, 호출당 행 250개가 포함됩니다. 자세한 내용은 다음에서 확인하세요. 가격 페이지.
엔드포인트가 Railway의 SQL 방언을 사용합니까?
네, 그렇습니다. SQL 쿼리는 직접 작성하셨고, Query Builder에서 Railway Postgres 데이터베이스에 대해 실행하셨습니다. 엔드포인트는 Railway에서 예상하는 방식으로 매개변수 값이 바인딩된 동일한 연결을 통해 정확히 그 SQL 쿼리를 실행합니다.
내 철도용 포스트그레스 데이터베이스는 인터넷에서 접근 가능해야 하나요?
아니요. 인터넷에 연결된 상시 접속 컴퓨터에서 에이전트만 접속하면 됩니다. 에이전트는 Query Streams에 한 번만 외부 연결을 시도하며, 발신자는 api.querystreams.com으로 접속하고 귀하의 서버로는 절대 접속하지 않습니다.
관련 가이드
모든 가이드 Railway
원하는 설정이 아닌가요?
- 자체 서버 또는 컴퓨터에서 PostgreSQL을 실행하고 계신가요? PostgreSQL 카드를 사용하세요 → PostgreSQL
Setup trouble?
- Want the Agent to sign in with a login that can only read? Create a read-only database user, with copy-paste SQL for each database → Create a read-only database user
- Agent shows Offline, or Test connection and Browse are greyed out? Check that the Agent is online → Is the Agent online?

