Проект PostgREST развивает RESTful API демон для PostgreSQL

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
29-Окт-2021 19:30

PostgREST - открытый веб-сервер, который позволяет превратить любую базу данных, хранимую в СУБД PostgreSQL, в полноценный RESTful API. Мотивацией к написанию PostgREST стало желание уйти от ручного программирования CRUD, так как это может привести к проблемам: написание бизнес-логики часто дублирует, игнорирует или усложняет структуру базы данных; объектно-реляционное отображение (ORM mapping) не надёжная абстракция, которая приводит к медленному императивному коду и может стать причинной проблем с безопасностью. PostgREST написан на языке Haskell и распространяется по лицензии MIT.
Философия PostgREST в декларативном доступе к данным, без лишних прослоек. PostgREST не использует ORM, все представления создаются прямо в базе данных. Чтобы создавать и поддерживать backend API с PostgREST достаточно иметь в штате администратора СУБД. PostgREST упрощает разработку бэкенда и позволяет объединять, экстрагировать и фильтровать данные через запрос. Вместо написания кода в контроллерах (controllers) можно просто назначить разрешения для объектов в базе данных, а вместо того чтобы писать многочисленные проверки можно напрямую установить ограничения в базе данных.
Несколько иллюстраций возможностей PostgREST:
curl http://localhost:3000/todos
   [
     {
       "id": 1,
       "done": false,
       "task": "finish tutorial 0",
       "due": null
     },
     {
       "id": 2,
       "done": false,
       "task": "pat self on back",
       "due": null
     }]
   curl http://localhost:3000/todos -X POST \\
        -H "Content-Type: application/json" \\
        -d '{"task": "do bad thing"}'
   {
     "hint": null,
     "details": null,
     "code": "42501",
     "message": "permission denied for relation todos"
   }
   GET /films?select=title,directors(id,last_name) HTTP/1.1
    [
     { "title": "Workers Leaving The Lumière Factory In Lyon",
       "directors": {
         "id": 2,
         "last_name": "Lumière"
       }
     },
     { "title": "The Dickson Experimental Sound Film",
       "directors": {
         "id": 1,
         "last_name": "Dickson"
       }
     },
     { "title": "The Haunted Castle",
       "directors": {
         "id": 3,
         "last_name": "Méliès"
       }
   }]
Для PostgREST есть клиентские библиотеки и расширения, в том числе для OAth, Websockets, Amazon Kinesis. Также доступен starter-kit, который работает в Docker и включает PostgREST, веб-сервер openresty на Lua, pgTAP, RabbitMQ и панель управления.
Запустить приложения на PostgREST можно на платформе Heroku, так же используя Docker. Ещё есть профильная облачная платформа с расширенными функциями, subzero, разработчики которой развивают форк PostgREST+, в котором реализованы агрегатные и оконные функции, а также репликация на чтение.
===========
Источник:
OpenNet.RU
===========

Похожие новости: Теги для поиска: #_postgrest, #_restful, #_api, #_postgresql
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 13:07
Часовой пояс: UTC + 5