Lançamento do PostgREST 9.0.0, add-ons para transformar o banco de dados em uma API RESTful

Ocorreu o lançamento do PostgREST 9.0.0, um servidor web operando separadamente com a implementação de um complemento leve para o SGBD PostgreSQL, traduzindo objetos de um banco de dados existente em uma API RESTful. Em vez de mapear dados relacionais em objetos (ORMs), o PostgREST cria visualizações diretamente no banco de dados. O lado do banco de dados também lida com a serialização de respostas JSON, validação de dados e autorização. O desempenho do sistema é suficiente para processar até 2000 solicitações por segundo em um servidor típico. O código do projeto é escrito em Haskell e distribuído sob a licença do MIT.

Por exemplo, usando apenas o mecanismo de privilégios do banco de dados, você pode conceder acesso aos dados (tabelas, tipos de visualização e procedimentos armazenados) por HTTP. Neste caso, não há necessidade de codificar tal tradução e normalmente um comando GRANT é suficiente para disponibilizar a tabela através da API REST. É possível configurar o acesso por token (JWT) e organizar “multitenancy” através do uso de segurança dinâmica em nível de linha (Row Level Security).

Arquitetonicamente, o PostgREST avança em direção a uma arquitetura orientada a dados (Data-Oriented Architecture), onde os microsserviços não salvam estados por si próprios, mas usam um único acesso aos dados (Data Access Layer) para isso.

Lançamento do PostgREST 9.0.0, add-ons para transformar o banco de dados em uma API RESTful

Entre as mudanças na nova versão:

  • Tabelas particionadas foram adicionadas ao cache do esquema de armazenamento, o que possibilitou que tais tabelas incorporassem operações UPSERT e INSERT na resposta Location, executassem consultas OPTIONS e implementassem suporte OpenAPI.
  • Via RPC POST é permitido chamar funções com um parâmetro sem nome.
  • É permitido chamar funções com um parâmetro JSON sem o cabeçalho “Prefer: params=single-object”.
  • É permitido carregar dados do tipo bytea em funções utilizando consultas com “Content-Type: application/octet-stream”.
  • Permitido carregar texto em funções usando consultas com "Content-Type: text/plain".
  • Adicionado suporte para caracteres de escape dentro de colchetes duplos, por exemplo, "?col=in.("Double\"Quote"), ?col=in.("Back\\slash")".
  • A capacidade de filtrar recursos de primeiro nível com base em filtros integrados (“/projects?select=*,clients!inner(*)&clients.id=eq.12” foi fornecida.
  • O operador “is” permite o valor “desconhecido”.
  • A compatibilidade com PostgreSQL 14 foi alcançada e o suporte para PostgreSQL 9.5 foi descontinuado.

Fonte: opennet.ru

Adicionar um comentário