DO $$
DECLARE
schema_name INFORMATION_SCHEMA.views.table_schema%TYPE = 'api';
views CURSOR FOR select table_name from INFORMATION_SCHEMA.views WHERE table_schema = schema_name;
BEGIN
FOR view_record IN views LOOP
EXECUTE 'grant select, insert, update, delete on ' || schema_name || '.' || view_record.table_name || ' to anonymous;';
END LOOP;
END$$;
Will expose all views from the api public schema in the generated swagger/openapi specification from PostgREST/SubZero. Of course, ensure that all underneath private tables have row-level-security enabled.