Příklad Hello World
Vytvoříme jednoduchý API endpoint přiřazený k uživateli.1. Vytvoření uživatele a funkci
V databázi (my_database):
-- 1. Vytvoříme uživatele, který se bude přihlašovat k API
CREATE ROLE demo_user WITH LOGIN PASSWORD 'user_password';
GRANT USAGE ON SCHEMA api TO demo_user;
-- 2. Vytvoříme funkci Hello World
-- Input: prázdný jsonb, Output: json
CREATE OR REPLACE FUNCTION api.hello_world(payload jsonb)
RETURNS json
LANGUAGE sql
AS $$
SELECT '"Hello World"'::json;
$$;
-- 3. Udělíme uživateli oprávnění spustit funkci
GRANT EXECUTE ON FUNCTION api.hello_world(jsonb) TO demo_user;
-- 4. Povolíme PgArachne (systémovému uživateli), aby se mohl přepnout na demo_user
GRANT demo_user TO pgarachne;2. Přihlášení přes API
Použijte JSON-RPC metodu login pro získání JWT tokenu:
curl -X POST http://localhost:8080/api/my_database \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"login","params":{"login":"demo_user","password":"user_password"},"id":1}'Odpověď:
{"jsonrpc":"2.0","result":{"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."},"id":1}3. Volání funkce
Pomocí získaného tokenu zavolejte funkci hello_world:
export TOKEN="VÁŠ_JWT_TOKEN_ZDE"
curl -X POST http://localhost:8080/api/my_database \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "method": "api.hello_world", "params": {}, "id": 1}'Odpověď:
{"jsonrpc": "2.0", "result": "Hello World", "id": 1}