PostgREST, REST API за всяка база данни PostgreSQL, написана на Haskell

PostgREST-лого

postgREST е независим уеб сървър, който трансформира всяка база данни PostgreSQL директно в RESTful API. Написано в Haskell, предлага много по-чист и по-съвместим със стандартите AP. Докато структурните ограничения и разрешения на базата данни определят крайните точки и операциите на API.

Документацията на PostgREST го описва като „алтернатива на ръчното CRUD програмиране“. PostgREST е мидълуер с отворен код и API, изложени от PostgREST, отговарят на спецификацията OpenAPI (известна преди като спецификация Swagger). Според документацията си, той първоначално управлява зависимостите между таблиците във вашата база данни, като ви позволява чрез обикновена REST заявка да извличате данни от съединение между две таблици.

PostgREST ще бъде много бърз с време за реакция по-малко от секунда за до 2000 заявки в секунда на безплатното ниво Heroku.

„Ако сте свикнали със сървъри, написани на интерпретирани езици, подгответе се да бъдете приятно изненадани от представянето на PostgREST“, казва екипът.

Три фактора допринасят за тази скорост според екипа.

  1. на първо място, сървърът е написан на Haskell използване на HTTP Warp сървър (компилиран език).
  2. след това, делегирайте възможно най-много изчисления в базата данни, включително сериализиране на JSON отговори директно в SQL, валидиране на данни и др.
  3. И накрая, използвайте библиотеката Hasql, за да поддържате пул от връзки с база данни, двоичният протокол PostgreSQL и остава без гражданство, за да позволи хоризонтално мащабиране.

postgREST обработва удостоверяването (чрез JSON Web Tokens) и делегира упълномощаване на информацията за ролята, дефинирана в базата данни. Това гарантира, че има само един декларативен източник на истина за сигурност.

Когато се занимавате с базата данни, сървърът приема самоличността на текущо удостоверения потребител и по време на връзката не може да направи нищо, което самият потребител не може да направи. Други форми на удостоверяване могат да бъдат конструирани в примитива JWT.

От друга страна когато става въпрос за целостта на данните, PostgREST вместо да разчитате на обектно релационно картографиране (ORM) и персонализирано императивно кодиране, тази система налага декларативни ограничения директно върху вашата база данни.

Следователно нито едно приложение не може да навреди на вашите данни (включително вашия API сървър). PostgREST излага HTTP интерфейса с различни архиви, за да се избегнат проблеми, включително прилагане на заявки за PUT. С други думи, не е включен ORM.

Създаването на нови изгледи се извършва в SQL с известни последици за производителността. Най-доброто нещо за PostgREST е, че администраторът на база данни може да създаде API от нулата, без персонализирано програмиране.

За някои, PostgREST също е интересна алтернатива на база данни NoSQL или GraphQL изложени изобщо в API, ако трябва да поддържате релационен модел. Те намират за жалко, че този междинен софтуер не се предлага стандартно в хранилищата на пакети на големи дистрибуции на Linux.

Как да инсталирам PostgREST на Linux?

Версия 6.0.2 беше пусната миналия август с нови допълнения и някои промени. Тази версия може да бъде получена от github.

Връзката е тази.

по същия начин, за тези, които се интересуват от възможността да инсталират PostgREST, те трябва да знаят, че текущата версия може да бъде получена точно сега с помощта на терминатор. Само в него ще напишем:

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

Сега те просто трябва да разархивират пакета със следната команда:

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

Докато в специалния случай на тези, които използват 64-битова версия на 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

Или за тези, които използват 32-битова версия на 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

И те могат да работят с:

./postgrest --help

По същия начин се изготвя изображение на Docker, което може да се получи чрез въвеждане:

докер дърпа постгрест / постгрест

Накрая можете да получите повече информация за конфигурацията му от документацията на уебсайта му. Връзката е тази.


Бъдете първите, които коментират

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.