PostgREST, REST-sovellusliittymä kaikille Haskellissa kirjoitetuille PostgreSQL-tietokannoille

PostgrEST-logo

postgREST on riippumaton verkkopalvelin, joka muuntaa minkä tahansa PostgreSQL-tietokannan suoraan RESTful-sovellusliittymäksi. Kirjoitettu Haskellissa, tarjoaa paljon puhtaamman, standardien mukaisemman AP: n. Tietokannan rakenteelliset rajoitukset ja käyttöoikeudet määrittävät API: n päätepisteet ja toiminnot.

PostgREST-dokumentaatio kuvaa sitä "vaihtoehtona manuaaliselle CRUD-ohjelmoinnille". PostgREST on avoimen lähdekoodin väliohjelma ja PostgRESTin altistamat API: t noudattavat OpenAPI-määritystä (tunnettiin aiemmin nimellä Swagger-määritys). Asiakirjojensa mukaan se hallitsee luonnollisesti tietokannan taulukoiden välisiä riippuvuuksia, jolloin yksinkertaisen REST-pyynnön avulla voit noutaa tietoja kahden taulukon liitoksesta.

PostgREST olisi erittäin nopea ja vasteaika alle sekunti jopa 2000 pyyntöä sekunnissa ilmaisella Heroku-tasolla.

"Jos olet tottunut tulkatuilla kielillä kirjoitettuihin palvelimiin, valmistaudu yllättymään PostgRESTin suorituskyvystä", tiimi sanoo.

Tiimin mukaan tähän nopeuteen vaikuttaa kolme tekijää.

  1. Ensimmäinen, palvelin on kirjoitettu Haskellilla käyttämällä HTTP Warp -palvelinta (käännetty kieli).
  2. sitten, delegoida tietokantaan mahdollisimman monta laskutoimitusta, mukaan lukien JSON-vastausten sarjallisuus suoraan SQL: ään, tietojen validointi jne.
  3. lopuksi, käytä Hasql-kirjastoa tietokantayhteyksien ylläpitoon, PostgreSQL-binaariprotokolla, ja pysyy valtiottomana horisontaalisen skaalauksen sallimiseksi.

postgREST käsittelee todennusta (JSON-verkkotunnusten kautta) ja delegoi valtuutuksen tietokannassa määriteltyihin roolitietoihin. Tämä varmistaa, että turvallisuudelle on vain yksi julistava totuuden lähde.

Kun käsittelet tietokantaa, palvelin olettaa nykyisen todennetun käyttäjän henkilöllisyyden ja yhteyden aikana se ei voi tehdä mitään, mitä käyttäjä itse ei voi tehdä. JWT-primitiivissä voidaan rakentaa muita todennuksen muotoja.

Toisaalta kun on kyse tietojen eheydestä, PostgrEST sen sijaan, että luotettaisiin Object Relational Mapperiin (ORM) ja mukautettu pakollinen koodaus, tämä järjestelmä asettaa deklaratiivisia rajoituksia suoraan tietokantaan.

Siksi mikään sovellus ei voi vahingoittaa tietojasi (mukaan lukien API-palvelimesi). PostgREST paljastaa HTTP-käyttöliittymän useilla varmuuskopioilla ongelmien välttämiseksi, mukaan lukien PUT-pyyntöjen soveltaminen. Toisin sanoen, ORM ei ole mukana.

Uusien näkymien luominen tapahtuu SQL: ssä, jolla on tunnettuja vaikutuksia suorituskykyyn. PostgRESTin hienoa on, että tietokannan järjestelmänvalvoja voi luoda API: n tyhjästä ilman mukautettua ohjelmointia.

Joillekin PostgREST on myös mielenkiintoinen vaihtoehto NoSQL- tai GraphQL-tietokannalle altistetaan luonnollisesti API: lle, jos sinun on ylläpidettävä relaatiomallia. Heidän mielestään on valitettavaa, että tätä väliohjelmistoa ei ole saatavana vakiona suurten Linux-jakelujen pakettivarastoissa.

Kuinka PostgREST asennetaan Linuxiin?

Versio 6.0.2 julkaistiin viime elokuussa uusilla lisäyksillä ja joitain muutoksia. Tämän version voi hankkia githubista.

Linkki on tämä.

samoin, kiinnostuneille PostgRESTin asentamisesta, heidän pitäisi tietää, että nykyisen version voi saada juuri nyt terminaalin avulla. Vain siinä aiomme kirjoittaa:

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

Nyt heidän on vain purettava paketti seuraavalla komennolla:

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

Vaikka erityistapaus niille, jotka käyttävät 64-bittistä Ubuntun versiota:

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

Tai niille, jotka käyttävät Ubuntun 32-bittistä versiota

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

Ja he voivat juosta:

./postgrest --help

Samalla tavalla valmistetaan Docker-kuva, joka voidaan saada kirjoittamalla:

telakka vetää postgrest / postgrest

Lopuksi saat lisätietoja sen kokoonpanosta sen verkkosivuston ohjeista. Linkki on tämä.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.