Описание тега postgrest
Вступление
PostgREST - это автономный веб-сервер, который превращает вашу базу данных PostgreSQL напрямую в RESTful API. Структурные ограничения и разрешения в базе данных определяют конечные точки и операции API.
Мотивация
Использование PostgREST является альтернативой ручному программированию CRUD. У настраиваемых серверов API возникают проблемы. Написание бизнес-логики часто дублирует, игнорирует или затрудняет структуру базы данных. Объектно-реляционное сопоставление - это ненадежная абстракция, приводящая к медленному императивному коду. Философия PostgREST устанавливает единый декларативный источник истины: сами данные.
Декларативное программирование
Проще попросить Postgres объединить данные за вас и позволить планировщику запросов выяснить детали, чем самостоятельно перебирать строки. Проще назначать разрешения для объектов базы данных, чем добавлять охранников в контроллеры. (Это особенно верно для каскадных разрешений в зависимостях данных.) Легче установить ограничения, чем засорять код проверками работоспособности.
Герметичная абстракция
ORM не задействован. Создание новых представлений происходит в SQL с известными последствиями для производительности. Теперь администратор базы данных может создавать API с нуля без специального программирования.
Принятие реляционной модели
В 1970 году EF Codd раскритиковал доминирующую в то время иерархическую модель баз данных в своей статье "Реляционная модель данных для больших общих банков данных". При чтении статьи обнаруживается поразительное сходство между иерархическими базами данных и вложенными HTTP-маршрутами. В PostgREST мы пытаемся использовать гибкую фильтрацию и встраивание, а не вложенные маршруты.
Одна вещь хорошо
PostgREST имеет целенаправленную область действия. Он хорошо работает с другими инструментами, такими как Nginx. Это заставляет вас четко отделить операции CRUD, ориентированные на данные, от других задач. Используйте набор острых инструментов вместо того, чтобы строить большой ком из грязи.