Описание тега postgrest

PostgREST обслуживает полностью RESTful API из любой существующей базы данных PostgreSQL. Он предоставляет более чистый, более соответствующий стандартам и более быстрый API. Он отличается от других появляющихся серверов API тем, что занимает твердую позицию в отношении полной реализации API, будучи функционально надежным и простым в развертывании, обеспечивая встроенную безопасность с помощью веб-токенов JSON плюс роли базы данных и полностью принимая реляционную модель.

Вступление

PostgREST - это автономный веб-сервер, который превращает вашу базу данных PostgreSQL напрямую в RESTful API. Структурные ограничения и разрешения в базе данных определяют конечные точки и операции API.

Мотивация

Использование PostgREST является альтернативой ручному программированию CRUD. У настраиваемых серверов API возникают проблемы. Написание бизнес-логики часто дублирует, игнорирует или затрудняет структуру базы данных. Объектно-реляционное сопоставление - это ненадежная абстракция, приводящая к медленному императивному коду. Философия PostgREST устанавливает единый декларативный источник истины: сами данные.

Декларативное программирование

Проще попросить Postgres объединить данные за вас и позволить планировщику запросов выяснить детали, чем самостоятельно перебирать строки. Проще назначать разрешения для объектов базы данных, чем добавлять охранников в контроллеры. (Это особенно верно для каскадных разрешений в зависимостях данных.) Легче установить ограничения, чем засорять код проверками работоспособности.

Герметичная абстракция

ORM не задействован. Создание новых представлений происходит в SQL с известными последствиями для производительности. Теперь администратор базы данных может создавать API с нуля без специального программирования.

Принятие реляционной модели

В 1970 году EF Codd раскритиковал доминирующую в то время иерархическую модель баз данных в своей статье "Реляционная модель данных для больших общих банков данных". При чтении статьи обнаруживается поразительное сходство между иерархическими базами данных и вложенными HTTP-маршрутами. В PostgREST мы пытаемся использовать гибкую фильтрацию и встраивание, а не вложенные маршруты.

Одна вещь хорошо

PostgREST имеет целенаправленную область действия. Он хорошо работает с другими инструментами, такими как Nginx. Это заставляет вас четко отделить операции CRUD, ориентированные на данные, от других задач. Используйте набор острых инструментов вместо того, чтобы строить большой ком из грязи.