Obróć Folder JSONL Zapytanie SQL do Interfejs API REST punkt końcowy
Zapisz zapytanie w Kreatorze zapytań, kliknij Nowy punkt końcowy, and you have a URL at api.querystreams.com with its own key. The SQL runs read-only on the Agent that already reads your JSONL Folder file; the caller gets JSON or CSV and never sees the SQL, the schema or a password. Nothing to host, no port to open. About 90 seconds from a saved query, and the Free plan covers your first endpoint.
Co z tego wyjdzie?
Adres URL pod adresem api.querystreams.com która zwraca wiersze zapisanego zapytania JSONL Folder w formacie JSON lub CSV każdemu posiadaczowi klucza, przetestowane w konsoli w portalu przed udostępnieniem. Na przykład:
| Klawisz | Wartość | Opis |
|---|---|---|
identyfikator_pierwszego_wiersza ciąg znaków Fakultatywny | Seattle | Wywoływalny filtr z zapisanego zapytania |
Klucz X-API | qsapi_AB • • • • • • • • • • | Twój tajny token |
{
„id_pierwszego_wiersza”: „Seattle”
}| Chodnikowiec | Wartość | Opis |
|---|---|---|
Klucz X-API | qsapi_AB • • • • • • • • • • | Twój tajny token. Jeden na osobę dzwoniącą, możesz go odwołać w dowolnym momencie. |
Typ zawartości | aplikacja/json | Parametry podróżują jako treść JSON |
Przyjąć | aplikacja/json | Powrót JSON; poproś o tekst/csv, a otrzymasz CSV |
curl -X POST "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19" \ -H "Klucz X-API: qsapi_TWÓJ_KLUCZ" \ -H "Typ zawartości: application/json" \ -d '{"first_row_id": "Seattle"}'{
„kolumny”: [ { "nazwa": „_plik_źródłowy”, "typ": "liczba całkowita" }, { "nazwa": „liczba_wierszy”, "typ": "smyczkowy" }, { "nazwa": „id_pierwszego_wiersza”, "typ": "smyczkowy" } ],
"wydziwianie": [
{ „_plik_źródłowy”: 1042, „liczba_wierszy”: „Handlarze z Północnego Wiatru”, „id_pierwszego_wiersza”: „Seattle” },
{ „_plik_źródłowy”: 1057, „liczba_wierszy”: „Alpine Outfitters”, „id_pierwszego_wiersza”: "Denver" },
{ „_plik_źródłowy”: 1063, „liczba_wierszy”: „Harbour Foods”, „id_pierwszego_wiersza”: "Halifax" }
],
"meta": { „liczba_wierszy”: 3, „czas_czasu_agenta_w_ms”: 41, „id_żądania”: „req_7Hq2mKd9” }
}| Chodnikowiec | Wartość | Opis |
|---|---|---|
typ zawartości | aplikacja/json; zestaw znaków=utf-8 | Koperta na karcie Treść |
długość treści | 412 | Zwrócono bajty; powyżej znajduje się odznaka Rozmiar |
Folder JSONL przechowuje Twoje dane w plikach na kontrolowanym przez Ciebie komputerze. Ktoś inny chce mieć ich fragment w swojej aplikacji, panelu sterowania lub skrypcie, a standardowe rozwiązania przekazują zbyt wiele: logowanie do bazy danych, które nie działa już po zakończeniu projektu, nocny eksport, który jest nieaktualny przed śniadaniem, czy mały serwer API, który ktoś musi teraz uruchomić i naprawić. Strumienie zapytań sprawiają, że punkt końcowy to zapisane zapytanie wraz z kluczem. Agent, który już znajduje się w folderze plików JSON, uruchamia zapytanie, api.querystreams.com sprawdza klucz i limit przepustowości, a wywołujący otrzymuje wiersze. Kod SQL, schemat i dane uwierzytelniające nigdy nie opuszczają Twojego konta.
Czego będziesz potrzebować
Konto Query Streams
Każdy plan ma API REST. Wersja darmowa zapewnia jeden punkt końcowy, dwa klucze i 250 wierszy na wywołanie, co wystarcza do stworzenia tego przewodnika. Zarejestruj się na my.querystreams.com.
The Agent with your JSONL Folder file added as a connection
Jeszcze nie skończyłeś? Dodaj to w sekcji Dane → Agenci danych; zajmie to około dziesięciu minut.
Zapisane zapytanie w Kreatorze zapytań
Punkt końcowy obejmuje dokładnie jedno zapisane zapytanie. Napisz SELECT, uruchom je raz i zapisz. Dodaj filtr dynamiczny (a @variable w klauzuli WHERE), jeśli wywołujący mają mieć możliwość filtrowania.
Kto może tworzyć punkty końcowe? Właściciele, administratorzy i twórcy. Jeśli API Jeśli na górnym pasku brakuje elementu, administrator może go włączyć dla swojego użytkownika w Konto → UprawnieniaKażda osoba, z którą dzielisz punkt końcowy, potrzebuje tylko konta Query Streams, niezależnie od planu.
Skonfiguruj w czterech krokach
-
Zapisz zapytanie
W Kreator zapytań Wybierz połączenie z folderem JSONL, napisz polecenie SELECT, które chcesz opublikować, i uruchom je raz, aby zobaczyć wiersze. Ogranicz się do kolumn potrzebnych wywołującemu; punkt końcowy zwróci dokładnie to, co zwraca zapytanie.
Zapisane zapytanie · fileset.eventsSELECT _plik_źródłowy, COUNT(*) AS liczba_wierszy, MIN(_id_wiersza) AS identyfikator_pierwszego_wiersza Z zestaw_plików.zdarzenia GRUPA PRZEZ _plik_źródłowy ZAMÓWIENIE PRZEZ liczba_wierszy DESC LIMIT 100
Jeżeli dzwoniący mają mieć możliwość filtrowania, dodaj na przykład filtr dynamiczny
GDZIE first_row_id = @first_row_id. Każdy@variablestaje się parametrem API w kroku 3. Kliknij Zapisz i nadaj zapytaniu nazwę, która stanie się nazwą wyświetlaną punktu końcowego. -
Utwórz punkt końcowy
Otwórz API na górnym pasku i kliknij Nowy punkt końcowyKreator składa się z czterech kroków, Wybierz zapytanie, Skonfiguruj, Zablokuj parametry oraz Udostępnij. NA Wybierz zapytanieKliknij zapytanie, które właśnie zapisałeś. Zapytania, których Agent jest offline, są wyszarzone. Kliknij Następny.
Skrót. Z Kreatora zapytań możesz bezpośrednio udostępnić otwarte zapytanie; wówczas kreator uruchomi się Skonfiguruj z już wybranym zapytaniem.
-
Konfiguruj i blokuj parametry
NA Skonfiguruj wartości domyślne są odpowiednie dla pierwszego punktu końcowego: Nazwa wyświetlana wypełnione na podstawie zapytania, Długość życia Stały (wybierz Wygasa (w celu uzyskania tymczasowego udziału), Tryb odpowiedzi Statyczny (jedna odpowiedź JSON; wybierz Transmisja strumieniowa w przypadku wyników wykraczających poza statyczny limit wierszy Twojego planu), Format wewnętrzny JSON. Tryb i format odpowiedzi są stałe po utworzeniu, więc zdecyduj o nich tutaj. Kliknij Następny.
NA Zablokuj parametry Każdy filtr dynamiczny w zapytaniu jest wymieniony. Pozostaw te, które wywołujący mogą ustawić jako Możliwość wywołania i daj każdemu Nazwa ciągu zapytania; zaznacz Wymagany jeśli wywołanie bez niego powinno się nie powieść. Przypnij wartość, której wywołujący nie może zmienić. Zamkniętylub scenariusz randkowy, taki jak Początek miesiąca. Ukryty zachowuje domyślną wartość zapytania i odrzuca wszelkie próby jej ustawienia. Kliknij Następny.
-
Udostępnij i otrzymaj swój klucz
NA Udostępnij możesz zaprosić Ludzie przez e-mail lub dodaj Klucz serwisowy dla serwera lub narzędzia automatyzacji, albo na razie pomiń oba. Kliknij Utwórz i pobierz mój kluczEkran powodzenia pokazuje adres URL punktu końcowego i klucz: ciąg 49 znaków rozpoczynający się od
qsapi_Skopiuj to. Możesz to później ponownie wyświetlić z punktu końcowego. Udostępnianie kartę, więc nie zniknie ona po zamknięciu ekranu.Kliknij Wysłać w konsoli, aby wykonać pierwsze połączenie z samego portalu. Panel odpowiedzi pokazuje Status, Czas oraz Rozmiar, ten Ciało karta pokazuje JSON, a połączenie pojawia się na Działalność kartę kilka sekund później.
To wszystko. Folder plików JSON odpowiada teraz na podane przez Ciebie klucze za pomocą adresu URL, tylko do odczytu. Nic nie zostało zainstalowane, żaden port nie został otwarty, a kod SQL pozostał na Twoim koncie.
Zadzwoń z dowolnego miejsca
Zastąp identyfikator punktu końcowego swoim identyfikatorem z paska adresu URL konsoli i qsapi_TWÓJ_KLUCZ z Twoim kluczem. Parametry wywoływalne znajdują się w ciągu zapytania podczas GET; tutaj zapisane zapytanie ujawnia identyfikator_pierwszego_wiersza:
curl "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19?first_row_id=Seattle" \ -H "Klucz X-API: qsapi_YOUR_KEY"
{
„kolumny”: [ { "nazwa": „_plik_źródłowy”, "typ": "liczba całkowita" }, { "nazwa": „liczba_wierszy”, "typ": "smyczkowy" }, { "nazwa": „id_pierwszego_wiersza”, "typ": "smyczkowy" } ],
"wydziwianie": [
{ „_plik_źródłowy”: 1042, „liczba_wierszy”: „Handlarze z Północnego Wiatru”, „id_pierwszego_wiersza”: „Seattle” },
{ „_plik_źródłowy”: 1057, „liczba_wierszy”: „Alpine Outfitters”, „id_pierwszego_wiersza”: "Denver" },
{ „_plik_źródłowy”: 1063, „liczba_wierszy”: „Harbour Foods”, „id_pierwszego_wiersza”: "Halifax" }
],
"meta": { „liczba_wierszy”: 3, „czas_czasu_agenta_w_ms”: 41, „id_żądania”: „req_7Hq2mKd9” }
}Wiersze powracają jako obiekty kluczowane nazwą kolumny, z listą kolumn i meta Blok, który informuje o liczbie wierszy, o tym, czy wynik został przycięty, oraz o identyfikatorze żądania, który można podać w cudzysłowie. To samo wywołanie, co POST, umieszcza parametry w treści JSON, co jest właściwym rozwiązaniem w przypadku długich list wartości:
curl -X POST "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19" \ -H "Klucz X-API: qsapi_TWÓJ_KLUCZ" \ -H "Typ zawartości: application/json" \ -d '{"params": {"first_row_id": "Seattle"}}'?format=csv- CSV zamiast JSON, dołączony wiersz nagłówka.
Akceptuj: tekst/csvrobi to samo. Punkty końcowe przesyłania strumieniowego zwracają NDJSON (jeden obiekt JSON na wiersz) z końcowym{"_summary": prawda, "liczba_wierszy": N}linia; sprawdź ostatnią linię. ?sample=true- Maksymalnie pięć rzędów, bez opłat. Dobre do podłączenia klienta.
?kompresja=lz4- Obudowa LZ4 przeznaczona do połączeń o dużej głośności z dekoderem; Kod Karta zawiera fragment kodu dekodera dla każdego języka. Zwykły gzip działa automatycznie, gdy klient wysyła
Akceptuj kodowanie: gzip. Autoryzacja: Nośnik qsapi_…- Zaakceptowano jako alias dla
Klucz X-API. Użyj go z kodu przeglądarki.
Gdzie się podłącza
Excel i Power BI
Eksportuj → Power Query M (.pq) daje Ci gotowe zapytanie. Wklej je do Edytora zaawansowanego (Excel: Dane → Pobierz dane → Z innych źródeł → Puste zapytanie; Power BI: Strona główna → Przekształć dane → Nowe źródło → Puste zapytanie) i zastąp symbol zastępczy swoim qsapi_ klawisz.
Listonosz, Bezsenność, Gra w klasy
Ten sam Eksport menu pobiera kolekcję Postman v2.1, eksport Insomnia v5 lub kolekcję Hoppscotch z wypełnionymi parametrami i symbolem zastępczym klucza.
Twój własny kod
Ten Kod na karcie znajdują się działające przykłady dla cURL, Python, JavaScript, TypeScript, Java, C#, Go, PHP, PowerShell i Ruby. Eksport → Specyfikacja OpenAPI 3.1 zasila dowolny generator klienta lub interfejs użytkownika Swagger.
n8n, Zapier, Make, cron
Utwórz Klucz serwisowy W przypadku narzędzia wklej adres URL i klucz do węzła HTTP i zaplanuj jego wykonanie. Każde narzędzie ma własny klucz, więc możesz unieważnić jedno z nich bez zmiany pozostałych.
Co pozwalają plany
| Plan | Punkty końcowe | Klucze na punkt końcowy | Liczba osób na punkt końcowy | Liczba wierszy na wywołanie (statyczna) | Liczba wierszy na wywołanie (przesyłanie strumieniowe) | Połączenia na minutę, na klawisz |
|---|---|---|---|---|---|---|
| Bezpłatny | 1 | 2 | 1 | 250 | 250 | 3 |
| Rdzeń osobisty | 2 | 3 | 2 | 5,000 | 250,000 | 15 |
| Osobisty Plus | 5 | 5 | 5 | 10,000 | 500,000 | 30 |
| Podstawy działalności | 5 | 10 | 10 | 50,000 | 1,000,000 | 300 |
| Biznes Plus | 10 | 20 | 25 | 100,000 | 5,000,000 | 600 |
| Biznes Max | 25 | 30 | 50 | 250,000 | 10,000,000 | 600 |
| Rdzeń przedsiębiorstwa | 50 | 50 | 100 | 500,000 | 25,000,000 | 1,000 |
| Enterprise Plus | 100 | 100 | 250 | 1,000,000 | 50,000,000 | 1,000 |
| Enterprise Max | 250 | 200 | 500 | 2,500,000 | 100,000,000 | 1,500 |
Każde wywołanie ma również stały limit czasu zapytania wynoszący 60 sekund i limit odpowiedzi 8 MiB, a zwracane bajty wliczają się do miesięcznego limitu danych w ramach planu, takiego samego jak w przypadku dodatków do Excela i Arkuszy Google. Wersja darmowa ma jeden punkt końcowy i 5 MB transferu danych miesięcznie, co pozwala na wygodne wywoływanie małej tabeli wiele razy dziennie. Zobacz stronę z cennikiem dla dodatków według planu.
Za darmo to plan, którego się trzymasz. To nie jest okres próbny, który wygasa. Zobacz dokładnie, co obejmuje. strona z cenami.
Dbanie o bezpieczeństwo
SQL pozostaje Twój
Użytkownicy wywołujący otrzymują wiersze. Nigdy nie widzą zapytania, nazw tabel ani szczegółów połączenia i nie mogą zmienić działania punktu końcowego.
Jeden klucz, jeden punkt końcowy, jeden dzwoniący
Klucz działa dla dokładnie jednego punktu końcowego. Przydziel każdej osobie lub narzędziu własny klucz, a każde wywołanie będzie rejestrowane. Cofnij jeden klucz, a pozostałe będą działać dalej; cofnięcie nastąpi po około pięciu minutach.
Tylko do odczytu, po Twojej stronie ściany
Agent uruchamia tylko jeden zapisany komunikat SELECT i nic więcej, z poziomu Twojej sieci, przez własne połączenie wychodzące. Nie ma portu do otwarcia ani żadnych danych uwierzytelniających w internecie.
Każde połączenie w księdze głównej
Ten Działalność Karta pokazuje każde połączenie z czasem, odbiorcą, statusem, wierszami, bajtami i czasem trwania, w tym również odrzuconymi. Ustaw Wygasa okres istnienia tymczasowego udziału, a punkt końcowy wyłączy się w tym dniu.
Kiedy coś nie działa
| Status | Kod | Co robić |
|---|---|---|
| 401 | API_KEY_REQUIRED / API_KEY_INVALID | Brak nagłówka lub błędny klucz. Wyślij Klucz X-API: qsapi_…, całe 49 znaków. Klucze można ponownie skopiować z karty Udostępnianie punktu końcowego. |
| 403 | NIEZGODNOŚĆ PUNKTU KOŃCOWEGO_KLUCZA_API | Prawidłowy klucz używany w innym punkcie końcowym. Każdy klucz należy do jednego punktu końcowego. |
| 403 | API_KEY_REVOKED / API_ENDPOINT_EXPIRED | Klucz został unieważniony lub punkt końcowy osiągnął datę wygaśnięcia. Utwórz nowy klucz lub przywróć punkt końcowy. |
| 400 | API_PARAM_NOT_NOT_RIDABLE | Wysłano parametr, którego właściciel nie oznaczył jako „Wywoływalny”. Treść zawiera listę dozwolonych nazw. |
| 414 | ZA_DUŻE_ZAPYTANIE_API | Ciąg zapytania GET przekazał 8 KB lub 200 wartości listy. Wyślij te same parametry jako treść JSON zapytania POST. |
| 413 | API_OUTPUT_TOO_LARGE | Wynik przekroczył limit 8 MiB. Zawęź zapytanie lub zmień punkt końcowy na strumieniowanie. |
| 429 | OGRANICZONA_PRACA_API | Zbyt wiele połączeń w tej minucie dotyczących klucza lub punktu końcowego. Poczekaj na Ponów próbę po sekund lub podnieś Limit szybkości w Ustawieniach API → Domyślne w ramach Twojego planu. |
| 429 | API_DATA_REALM_EXHAUSTED | Miesięczny limit danych właściciela został wyczerpany. Limit resetuje się wraz z miesiącem rozliczeniowym; wybierz wyższy limit. |
| 503 | API_AGENT_NIE_POŁĄCZONY | Agent obsługujący plik JSONL jest offline. Sprawdź to w sekcji Dane → Agenci danych. Połączenia zostaną nawiązane ponownie po ponownym połączeniu. |
| 504 | Limit czasu zapytania API | Zapytanie trwało dłużej niż 60 sekund. Dodaj filtr lub indeks albo zapisz węższe zapytanie. |
Każdy błąd ma kształt {"błąd": {"kod": "…", "komunikat": "…"}} a każda odpowiedź niesie ze sobą Identyfikator żądania X-QS nagłówek. Podaj identyfikator, pisząc do pomocy technicznej.
Pytania, które zadają ludzie
Czy moje dane zostaną skopiowane do strumieni zapytań?
Nie. Agent uruchamia zapytanie, w którym znajdują się Twoje dane, i wysyła tylko wiersze, o które poprosiło wywołanie. Nic nie jest synchronizowane ani buforowane w międzyczasie; każde wywołanie uruchamia zapytanie.
Czy osoby wywołujące mogą zmienić kod SQL lub poprosić o inne tabele?
Nie. Punkt końcowy uruchamia jedno zapisane zapytanie. Użytkownicy wywołujący mogą ustawić tylko zaznaczone parametry. Możliwość wywołania, a wartości są bezpiecznie powiązane: tekst jest cytowany i zastępowany znakami ucieczki, zakresy liczb są sprawdzane, listy są rozwijane.
Jak przekazać to partnerowi?
Na punkcie końcowym Udostępnianie wybierz kartę Ludzie i wprowadź swój adres e-mail. Otrzymują magiczny link, logują się za pomocą tego adresu (bezpłatne konto jest wystarczające) i tworzą własny klucz; ich połączenia widzisz po nazwie na karcie Aktywność. W przypadku serwera lub narzędzia do automatyzacji utwórz Klucz API z etykietą.
Co się stanie, gdy edytuję zapisane zapytanie?
Punkt końcowy uruchamia nową instrukcję SQL przy następnym wywołaniu, a specyfikacja OpenAPI zostaje zregenerowana. Adres URL i klucze nie ulegają zmianie. Jeśli dodasz lub usuniesz filtr, ponownie sprawdź… Zablokuj parametry aby dzwoniący widzieli właściwe parametry.
Czy plan darmowy naprawdę to obejmuje?
Tak. Darmowy plan to taki, który można zachować, a nie okres próbny, który wygasa. Obejmuje jeden punkt końcowy, dwa klucze i 250 wierszy na wywołanie. Zobacz dokładnie, co obejmuje na stronie. strona z cenami.
Czy punkt końcowy obsługuje dialekt SQL folderu JSONL?
Tak, ponieważ kod SQL jest Twój. Napisałeś go i uruchomiłeś na folderze plików JSON w Query Builderze; punkt końcowy uruchamia dokładnie to samo polecenie przez to samo połączenie, z wartościami parametrów powiązanymi w sposób, jakiego oczekuje JSONL Folder.
Czy folder z plikami JSON musi być dostępny z Internetu?
Nie. Tylko agent musi się z nim połączyć z Twojej sieci. Agent nawiązuje jedno połączenie wychodzące do Query Streams; osoby wywołujące komunikują się z api.querystreams.com, a nigdy z Twoim komputerem.
Powiązane przewodniki
Każdy przewodnik dla JSONL Folder
Nie jest to dokładnie to, czego szukasz?
- Czy to pliki dziennika Twojej aplikacji, które stale rosną? Dzienniki aplikacji odczytują nowe wiersze w miarę ich zapisywania i wyciągają poziom, rejestrator i komunikat → App Logs
- Potrzebujesz tylko listy plików z rozmiarami, datami i zmianami? System plików robi to bez odczytywania plików → File System
Setup trouble?
- Agent says the file or folder does not exist, or access is denied? Mapped drives, network shares, OneDrive and Linux home folders each need one fix → Where the Agent can read files from
- Agent shows Offline, or Test connection and Browse are greyed out? Check that the Agent is online → Is the Agent online?

