Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PostgREST. Как быстро создать RESTful API

Avatar for Evgeniy Evgeniy
October 21, 2015

PostgREST. Как быстро создать RESTful API

Николай Самохвалов: PostgREST. Как быстро создать RESTful API - 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

Avatar for Evgeniy

Evgeniy

October 21, 2015
Tweet

More Decks by Evgeniy

Other Decks in Technology

Transcript

  1. Москва, 14.10.2015 PostgreSQL Николай Самохвалов Российское сообщество пользователей PostgreSQL #PostgreSQLRussia

    Встреча в компании ЯНДЕКС ru@PostgreSQL.org Twitter: @postgresmen hashtag: #PostgreSQLRussia
  2. Идея: ⋄ знание о схеме БД (системные каталоги, INFORMATION SCHEMA)

    → автоматическое создание RESTful HTTP API ⋄ избавиться от «толстого» middleware, минимизировать маршаллинг данных ⋄ унифицировать протокол общения (JSON) между сервером и различными клиентами (Web app, Mobile apps, browser extensions, etc)
  3. Шаг 2. Освежите знания HTTP/1.1 • PUT vs POST vs

    PATCH • Accept, Range, etc • HTTP Auth «Поиграться»: https://www.publicapis.com/, http://www.programmableweb.com/apis/directory
  4. Шаг 3. Установите PostgREST - Скачайте и запустите: ./postgrest --db-host

    localhost --db-port 5432 \ --db-name my_db --db-user postgres \ --db-pass foobar --db-pool 200 \ --anonymous postgres --port 3000 \ --v1schema public - Или поставьте в облаке Heroku https://github.com/begriffs/postgrest-heroku
  5. Сам API - Основа — представления (могут быть updatable) в

    схеме (начинаем со схемы "1") - При вызове: Accept: application/json; version=1 - Примеры вызовов: GET /people GET /people?age=lt.18 GET /people?age=lt.18&is_male=eq.true GET /people?order=age.desc,height.asc GET /stuff?some_json_col->a->>b=eq.2
  6. Советы - Используйте средство для миграций схем БД - sqitch

    http://sqitch.org/ – хорош (TDD included!) - sem https://github.com/mbryzek/schema-evolution-manager – выбор Олега Царёва :) - Используйте SSL - Пересмотрите ограничения целостности - Аккуратнее с PATCH! - Не бойтесь Haskell ;)
  7. Русскоязычное PostgreSQL-сообщество Присоединяйтесь СЕЙЧАС! • http://PostgreSQLRussia.org • Gitter-чат: http://postgres.chat •

    Twitter: @postgresmen • Youtube-канал PostgreSQLRussia • http://facebook.com/groups/PostgreSQL • Встречи • Конференции • Опросы • Обмен опытом
  8. АНОНСЫ 2015.11.03 — #PostgreSQLRussia в Mail.ru Тема: Миграция с Oracle

    на Postgres - Bruce Momjian - опыт крупных российских компаний - экспертное мнение от PostgresPro и PostgreSQL-Consulting - трансфер от Крокуса для тех, кто идёт на Highload++ :-) 3-5 февраля 2016 — PgConf.ru (Москва) Лето 2016 — PgDay.ru (СПб)
  9. Действует только для участников PostgreSQLRussia.org PostgreSQL-Consulting.com: Администрирование, тюнинг, обучение Скидка

    15% (с 8.09.2015 по 15.10.2015) — кодовое слово MEETPG15 OKmeter.io: умный онлайн-мониторинг Linux-серверов с установкой за 1 минуту Скидка 20% (с 8.09.2015 по 08.03.2016) — кодовое слово OKPOSTGRES Highload++: лидирующая технологическая конференция, 2000 участников, много докладов по PostgreSQL, 2 и 3 ноября 2015 Скидка 10% — кодовое слово OnlyPostgreSQL Партнёры