feat: request.spec GUC for db-root-spec

The request.spec GUC contains the schema cache structure in json.

It's only available when the root endpoint(/) is requested and when
db-root-spec is not empty.

Also correct db-root-spec to accept a schema.
This commit is contained in:
steve-chavez
2021-05-30 16:48:08 -05:00
committed by Steve Chavez
parent f169661ce6
commit d99909c403
11 changed files with 69 additions and 50 deletions
+3 -13
View File
@@ -1713,9 +1713,9 @@ returns integer as $$
select a + b;
$$ language sql;
create function root() returns jsonb as $_$
create or replace function root() returns json as $_$
declare
openapi jsonb = $$
openapi json = $$
{
"swagger": "2.0",
"info":{
@@ -1724,22 +1724,12 @@ openapi jsonb = $$
}
}
$$;
simple jsonb = $$
[
{
"table":"items"
},
{
"table":"subitems"
}
]
$$;
begin
case current_setting('request.header.accept', true)
when 'application/openapi+json' then
return openapi;
when 'application/json' then
return simple;
return (current_setting('request.spec', true)::json)->'dbRelationships'->0->'relTable';
else
return openapi;
end case;