PostgREST, uma API REST para qualquer banco de dados PostgreSQL escrito em Haskell

postgREST-logo

postgREST é um servidor web independente que transforme qualquer banco de dados PostgreSQL diretamente em uma API RESTful. Escrito em Haskell, oferece um AP muito mais limpo e compatível com os padrões. Considerando que restrições estruturais e permissões de banco de dados determinam os terminais e as operações de API.

A documentação do PostgREST o descreve como uma "alternativa à programação CRUD manual". PostgREST é um middleware de código aberto e as APIs expostas pelo PostgREST estão em conformidade com a especificação OpenAPI (anteriormente conhecida como especificação Swagger). De acordo com sua documentação, ele gerencia nativamente as dependências entre as tabelas do banco de dados, permitindo que você, por meio de uma simples solicitação REST, recupere dados de uma junção entre duas tabelas.

PostgREST seria muito rápido com um tempo de resposta de menos de um segundo para até 2000 solicitações por segundo na camada Heroku gratuita.

“Se você está acostumado com servidores escritos em linguagens interpretadas, prepare-se para ser agradavelmente surpreendido pelo desempenho do PostgREST”, diz a equipe.

Três fatores contribuem para essa velocidade de acordo com a equipe.

  1. Em primeiro lugar, o servidor está escrito em Haskell usando servidor HTTP Warp (uma linguagem compilada).
  2. Então, delegar tantos cálculos quanto possível para o banco de dados, incluindo serializar respostas JSON diretamente em SQL, validar dados, etc.
  3. Finalmente, usa a biblioteca Hasql para manter um conjunto de conexões de banco de dados, o protocolo binário PostgreSQL e permanece sem estado para permitir o escalonamento horizontal.

postgREST lida com a autenticação (via JSON Web Tokens) e delega autorização para as informações de função definidas no banco de dados. Isso garante que haja apenas uma fonte declarativa de verdade para segurança.

Ao lidar com o banco de dados, o servidor assume a identidade do usuário autenticado no momento e durante a conexão, ele não pode fazer nada que o próprio usuário não possa fazer. Outras formas de autenticação podem ser construídas na primitiva JWT.

Por outro lado quando se trata de integridade de dados, PostgREST em vez de confiar em um Mapeador Relacional de Objeto (ORM) e uma codificação imperativa personalizada, este sistema impõe restrições declarativas diretamente em seu banco de dados.

Portanto, nenhum aplicativo pode danificar seus dados (incluindo seu servidor de API). PostgREST expõe a interface HTTP com vários backups para evitar problemas, incluindo a aplicação de solicitações PUT. Em outras palavras, não há ORM envolvido.

A criação de novas visualizações ocorre em SQL com implicações de desempenho conhecidas. A melhor coisa sobre PostgREST é que um administrador de banco de dados pode criar uma API do zero sem programação personalizada.

Para alguns, PostgREST também é uma alternativa interessante para um banco de dados NoSQL ou GraphQL exposto nativamente na API se você precisar manter um modelo relacional. Eles acham lamentável que este middleware não esteja disponível como padrão nos repositórios de pacotes de grandes distribuições Linux.

Como instalar o PostgREST no Linux?

A versão 6.0.2 foi lançada em agosto passado com novas adições e algumas mudanças. Esta versão pode ser obtida no github.

O link é este.

Igualmente, para aqueles interessados ​​em instalar o PostgREST, eles devem saber que a versão atual pode ser obtida agora com a ajuda de um terminador. Só nele vamos digitar:

wget https://github.com/PostgREST/postgrest/releases/download/v6.0.2/postgrest-v6.0.2-linux-x64-static.tar.xz

Agora, basta descompactar o pacote com o seguinte comando:

tar Jxf postgrest-v6.0.2-linux-x64-static.tar.xz

No caso especial de quem usa uma versão de 64 bits do Ubuntu:

wget https://github.com/PostgREST/postgrest/releases/download/v6.0.2/postgrest-v6.0.2-ubuntu.tar.xz
tar Jxf postgrest-v6.0.2-ubuntu.tar.xz

Ou para quem usa uma versão de 32 bits do Ubuntu

wget https://github.com/PostgREST/postgrest/releases/download/v6.0.2/postgrest-v6.0.2-ubuntui386.tar.xz
tar Jxf postgrest-v6.0.2-ubuntui386.tar.xz

E eles podem funcionar com:

./postgrest --help

Da mesma forma, uma imagem Docker é preparada, ela pode ser obtida digitando:

docker pull postgrest / postgrest

Finalmente você pode obter mais informações sobre a configuração dele, na documentação em seu site. O link é este.


O conteúdo do artigo segue nossos princípios de Ética editorial. Para relatar um erro, clique Clique aqui.

Seja o primeiro a comentar

Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.