14
Москва, 14.10.2015 PostgreSQL Николай Самохвалов Российское сообщество пользователей PostgreSQL #PostgreSQLRussia Встреча в компании ЯНДЕКС [email protected] Twitter: @postgresmen hashtag: #PostgreSQLRussia

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

Embed Size (px)

Citation preview

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

Москва, 14.10.2015

PostgreSQL

Николай Самохвалов

Российское сообщество пользователей PostgreSQL#PostgreSQLRussia

Встреча в компании ЯНДЕКС

[email protected]

Twitter: @postgresmenhashtag: #PostgreSQLRussia

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

Идея: ⋄ знание о схеме БД (системные каталоги,

INFORMATION SCHEMA) → автоматическое создание RESTful HTTP API

⋄ избавиться от «толстого» middleware, минимизировать маршаллинг данных

⋄ унифицировать протокол общения (JSON) между сервером и различными клиентами (Web app, Mobile apps, browser extensions, etc)

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

Шаг 1. Скачайте Postman(и посоветуйте скачать друзьям)

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

Шаг 2. Освежите знания HTTP/1.1

● PUT vs POST vs PATCH

● Accept, Range, etc

● HTTP Auth

«Поиграться»: https://www.publicapis.com/,http://www.programmableweb.com/apis/directory

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

Шаг 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

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

Сам 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

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

Советы

- Используйте средство для миграций схем БД

- sqitch http://sqitch.org/ – хорош (TDD included!)

- sem https://github.com/mbryzek/schema-evolution-manager – выбор Олега Царёва :)

- Используйте SSL

- Пересмотрите ограничения целостности

- Аккуратнее с PATCH!

- Не бойтесь Haskell ;)

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

Участвуйте в развитии!

- http://postgrest.com, Github

- Чат: https://gitter.im/begriffs/postgrest

- “Scrum”: https://waffle.io/begriffs/postgrest

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

Русскоязычное PostgreSQL-сообществоПрисоединяйтесь СЕЙЧАС!

● http://PostgreSQLRussia.org

● Gitter-чат: http://postgres.chat

● Twitter: @postgresmen

● Youtube-канал PostgreSQLRussia● http://facebook.com/groups/PostgreSQL

● Встречи● Конференции● Опросы● Обмен опытом

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

Кто использует в России?

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

АНОНСЫ2015.11.03 — #PostgreSQLRussia в Mail.ru

Тема: Миграция с Oracle на Postgres- Bruce Momjian- опыт крупных российских компаний- экспертное мнение от PostgresPro и

PostgreSQL-Consulting- трансфер от Крокуса для тех, кто идёт на

Highload++ :-)

3-5 февраля 2016 — PgConf.ru (Москва)

Лето 2016 — PgDay.ru (СПб)

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

Действует только для участников 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

Партнёры

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

Николай Самохвалов

[email protected]

Twitter: @postgresmen

Skype: postgresmen

http://PostgreSQLRussia.orghttp://Postgresmen.ru

Спасибо!