PostgREST 9.0.0-āĻāĻ° āĻ°āĻŋāĻ˛āĻŋāĻ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻĒā§āĻ¸ā§āĻāĻā§āĻ°ā§āĻāĻ¸āĻāĻŋāĻāĻāĻ˛ DBMS-āĻ āĻāĻāĻāĻŋ āĻ˛āĻžāĻāĻāĻāĻ¯āĻŧā§āĻ āĻ ā§āĻ¯āĻžāĻĄ-āĻ āĻ¨ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ¸āĻš āĻāĻāĻāĻŋ āĻāĻ˛āĻžāĻĻāĻžāĻāĻžāĻŦā§ āĻ āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻāĻ¯āĻŧā§āĻŦ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°, āĻāĻāĻāĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻĨā§āĻā§ āĻ āĻŦāĻā§āĻā§āĻāĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻāĻŋ RESTful API-āĻ¤ā§ āĻ āĻ¨ā§āĻŦāĻžāĻĻ āĻāĻ°ā§āĨ¤ āĻŦāĻ¸ā§āĻ¤ā§āĻ¤ā§ (ORMs) āĻ°āĻŋāĻ˛ā§āĻļāĻ¨āĻžāĻ˛ āĻĄā§āĻāĻž āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§, PostgREST āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻāĻŋāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĨ¤ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻĻāĻŋāĻāĻāĻŋ JSON āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž, āĻĄā§āĻāĻž āĻ¯āĻžāĻāĻžāĻāĻāĻ°āĻŖ āĻāĻŦāĻ āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ā§āĻ° āĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻāĻā§āĻļāĻ¨āĻ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°ā§āĨ¤ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ 2000āĻāĻŋ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¯āĻĨā§āĻˇā§āĻāĨ¤ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻā§āĻĄ Haskell āĻ˛ā§āĻāĻž āĻāĻŦāĻ MIT āĻ˛āĻžāĻāĻ¸ā§āĻ¨ā§āĻ¸ā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ.
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻĒā§āĻ°āĻŋāĻāĻŋāĻ˛ā§āĻ āĻŽā§āĻāĻžāĻ¨āĻŋāĻāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻāĻĒāĻ¨āĻŋ HTTP-āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĄā§āĻāĻž (āĻā§āĻŦāĻŋāĻ˛, āĻĻā§āĻāĻžāĻ° āĻ§āĻ°āĻ¨, āĻāĻŦāĻ āĻ¸āĻā§āĻāĻŋāĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ) āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻ āĻ¨ā§āĻŦāĻžāĻĻāĻā§ āĻāĻ¨āĻā§āĻĄ āĻāĻ°āĻžāĻ° āĻĻāĻ°āĻāĻžāĻ° āĻ¨ā§āĻ āĻāĻŦāĻ REST API-āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻā§āĻŦāĻŋāĻ˛āĻāĻŋ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻāĻāĻŋ GRANT āĻāĻŽāĻžāĻ¨ā§āĻĄāĻ āĻ¯āĻĨā§āĻˇā§āĻāĨ¤ āĻĄāĻžāĻāĻ¨āĻžāĻŽāĻŋāĻ āĻ¸āĻžāĻ°āĻŋ āĻ˛ā§āĻā§āĻ˛ āĻ¸āĻŋāĻāĻŋāĻāĻ°āĻŋāĻāĻŋ (āĻ°ā§ āĻ˛ā§āĻā§āĻ˛ āĻ¸āĻŋāĻāĻŋāĻāĻ°āĻŋāĻāĻŋ) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻā§āĻā§āĻ¨ (JWT) āĻĻā§āĻŦāĻžāĻ°āĻž āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻāĻŦāĻ "āĻŽāĻžāĻ˛ā§āĻāĻŋāĻā§āĻ¨ā§āĻ¨ā§āĻ¸āĻŋ" āĻ¸āĻāĻāĻ āĻŋāĻ¤ āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦāĨ¤
āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯āĻāĻ¤āĻāĻžāĻŦā§, PostgREST āĻāĻāĻāĻŋ āĻĄā§āĻāĻž-āĻāĻ°āĻŋāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻĄ āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°ā§āĻ° (āĻĄā§āĻāĻž-āĻāĻ°āĻŋāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻĄ āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°) āĻĻāĻŋāĻā§ āĻ ā§āĻ˛ā§ āĻĻā§āĻ¯āĻŧ, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻŽāĻžāĻāĻā§āĻ°ā§āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ¸āĻā§āĻ˛āĻŋ āĻ°āĻžāĻā§āĻ¯āĻā§āĻ˛āĻŋāĻā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§ āĻ¨āĻž, āĻ¤āĻŦā§ āĻāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻĄā§āĻāĻžāĻ¤ā§ āĻāĻāĻ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ (āĻĄā§āĻāĻž āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ˛ā§āĻ¯āĻŧāĻžāĻ°) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤
āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§:
- āĻĒāĻžāĻ°ā§āĻāĻŋāĻļāĻ¨ āĻāĻ°āĻž āĻā§āĻŦāĻŋāĻ˛āĻā§āĻ˛āĻŋ āĻ¸ā§āĻā§āĻ°ā§āĻ āĻ¸ā§āĻāĻŋāĻŽāĻž āĻā§āĻ¯āĻžāĻļā§ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻ¯āĻž āĻāĻ āĻāĻžāĻ¤ā§āĻ¯āĻŧ āĻā§āĻŦāĻŋāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻĒāĻā§āĻˇā§ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ¤ā§ UPSERT āĻāĻŦāĻ INSERT āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒāĻā§āĻ˛āĻŋāĻā§ āĻāĻŽā§āĻŦā§āĻĄ āĻāĻ°āĻž, OPTIONS āĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ°ā§āĻā§āĻ˛āĻŋ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻāĻŦāĻ OpenAPI āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻāĻ°ā§āĻā§āĨ¤
- RPC POST āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻžāĻŽāĻšā§āĻ¨ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻ¸āĻš āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤
- āĻāĻāĻŋ "āĻĒāĻāĻ¨ā§āĻĻ: params=āĻāĻāĻ-āĻ āĻŦāĻā§āĻā§āĻ" āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻāĻžāĻĄāĻŧāĻž āĻāĻāĻāĻŋ JSON āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻ¸āĻš āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤
- āĻāĻāĻŋ "āĻāĻ¨ā§āĻā§āĻ¨ā§āĻ-āĻāĻžāĻāĻĒ: āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨/āĻ āĻā§āĻā§āĻ-āĻ¸ā§āĻā§āĻ°ā§āĻŽ" āĻāĻ° āĻ¸āĻžāĻĨā§ āĻĒā§āĻ°āĻļā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĢāĻžāĻāĻļāĻ¨ā§ āĻāĻžāĻāĻĒ āĻŦāĻžāĻāĻā§āĻ° āĻĄā§āĻāĻž āĻ˛ā§āĻĄ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤
- "āĻāĻ¨ā§āĻā§āĻ¨ā§āĻ-āĻāĻžāĻāĻĒ: āĻā§āĻā§āĻ¸āĻ/āĻĒā§āĻ˛ā§āĻāĻ¨" āĻ¸āĻš āĻĒā§āĻ°āĻļā§āĻ¨āĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĢāĻžāĻāĻļāĻ¨ā§ āĻĒāĻžāĻ ā§āĻ¯ āĻ˛ā§āĻĄ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
- āĻĻā§āĻŦā§āĻ¤ āĻŦāĻ¨ā§āĻ§āĻ¨ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ āĻā§āĻˇāĻ° āĻĒāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, "?col=in.("Double\"quote"), ?col=in.("Back\\slash")"āĨ¤
- āĻŦāĻŋāĻ˛ā§āĻ-āĻāĻ¨ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° (â/projects?select=*,clients!inner(*)&clients.id=eq.12â-āĻāĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻĒā§āĻ°āĻĨāĻŽ-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
- "is" āĻ āĻĒāĻžāĻ°ā§āĻāĻ° "āĻ āĻāĻžāĻ¨āĻž" āĻŽāĻžāĻ¨āĻāĻŋāĻā§ āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤
- PostgreSQL 14-āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻ¤āĻž āĻ āĻ°ā§āĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ PostgreSQL 9.5-āĻāĻ° āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻ¤ā§āĻ¸: opennet.ru