REST on rails. Пишем API и
клиент
REST. Четко и по-хардкору
Когда я первый раз прочитал про REST......
REST. Четко и по-хардкору
REST (Representational State Transfer) - передача
состояния представления
Далее мы узнаем …
что ...
REST. Четко и по-хардкору
Принцип № 1:
Все является ресурсом
●
… c уникальным идентификатором:
✔ /cities/1/mistresses/23
✔...
REST. Четко и по-хардкору
Принцип № 2:
Объединяй связанные сущности согласно бизнес-
логике
●
Правильно: /cities/1/mistres...
REST. Четко и по-хардкору
Принцип № 3:
Используй стандартные CRUD методы HTTP:
●
DELETE /cities/1/mistresses/23 — это твой...
REST. Четко и по-хардкору
Принцип № 4:
Множественное представление:
✔ JSON
✔ XML
✔ HTML
Принцип № 5:
Все операции клиента ...
REST. Четко и по-хардкору
Что в итоге?
✔ Простота идеи
✔ Простота разработки
✔ Гибкость
Простое лучше, чем сложное
Routes
CRUD.Index
CRUD.Show
CRUD.Create
CRUD.update
CRUD.destroy
Gem 'active_model_serializers'
Назначение - serializers replace hash-driven
development with object-oriented development
Gem 'active_model_serializers'
Когда сериалайзеры не помогают...
Когда сериалайзеры не помогают...
Gem 'jbuilder'
show.json.jbuilder:
Gem 'jbuilder'
_forecast.json.jbuilder:
Тестирование
Парадокс: в православно оттестированном API не
будет багов!
Документация
Правило: Документация должна быть прозрачной и
полной, как само API
✔ apipie-rails(no need to learn yet anoth...
Документация: yardoc
Запросы к сторонним API
Каждые 30 секунд надо распарсить новостные RSS
schedule.rb:
Запросы к сторонним API
Каждые 30 секунд надо распарсить новостные RSS
Запросы к сторонним API
Каждые 30 секунд надо распарсить новостные RSS
daemons/newslist.rb:
Ценные советы
✔ Бэкапы — это твой бро
✔ Логи — это твой бро
✔ Админка для вывода информации из БД — это
твой бро
✔ Идти на...
Клиент к API. Гем weary
Weary is a framework and DSL for building
clients for (preferably RESTful) web
service APIs.
At it...
Клиент к API. Гем weary
lib/appstore_client.rb
Клиент к API. Гем weary
lib/appstore_client/config.rb
Клиент к API. Гем weary
lib/appstore_client/client.rb
Клиент к API. Использование
сonfig/initializers/appstore_client.rb
Клиент к API. Использование
lib/appstore_service.rb
Спасибо за внимание!
Upcoming SlideShare
Loading in...5
×

Rest api

291

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
291
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Rest api

  1. 1. REST on rails. Пишем API и клиент
  2. 2. REST. Четко и по-хардкору Когда я первый раз прочитал про REST......
  3. 3. REST. Четко и по-хардкору REST (Representational State Transfer) - передача состояния представления Далее мы узнаем … что ... состояние – это как раз то, что отсутствует в архитектуре REST в отношениях клиент-сервер
  4. 4. REST. Четко и по-хардкору Принцип № 1: Все является ресурсом ● … c уникальным идентификатором: ✔ /cities/1/mistresses/23 ✔ cities/Ulyanovsk/mistresses/Angelika73
  5. 5. REST. Четко и по-хардкору Принцип № 2: Объединяй связанные сущности согласно бизнес- логике ● Правильно: /cities/1/mistresses/23 Неправильно: /mistresses/23?city_id=1
  6. 6. REST. Четко и по-хардкору Принцип № 3: Используй стандартные CRUD методы HTTP: ● DELETE /cities/1/mistresses/23 — это твой бро POST updatemistress?id=23&city_id=1&action=delete — это не твой бро
  7. 7. REST. Четко и по-хардкору Принцип № 4: Множественное представление: ✔ JSON ✔ XML ✔ HTML Принцип № 5: Все операции клиента с сервером STATELESS
  8. 8. REST. Четко и по-хардкору Что в итоге? ✔ Простота идеи ✔ Простота разработки ✔ Гибкость Простое лучше, чем сложное
  9. 9. Routes
  10. 10. CRUD.Index
  11. 11. CRUD.Show
  12. 12. CRUD.Create
  13. 13. CRUD.update
  14. 14. CRUD.destroy
  15. 15. Gem 'active_model_serializers' Назначение - serializers replace hash-driven development with object-oriented development
  16. 16. Gem 'active_model_serializers'
  17. 17. Когда сериалайзеры не помогают...
  18. 18. Когда сериалайзеры не помогают...
  19. 19. Gem 'jbuilder' show.json.jbuilder:
  20. 20. Gem 'jbuilder' _forecast.json.jbuilder:
  21. 21. Тестирование Парадокс: в православно оттестированном API не будет багов!
  22. 22. Документация Правило: Документация должна быть прозрачной и полной, как само API ✔ apipie-rails(no need to learn yet another syntax, you already know Ruby, right? ✔ yardoc
  23. 23. Документация: yardoc
  24. 24. Запросы к сторонним API Каждые 30 секунд надо распарсить новостные RSS schedule.rb:
  25. 25. Запросы к сторонним API Каждые 30 секунд надо распарсить новостные RSS
  26. 26. Запросы к сторонним API Каждые 30 секунд надо распарсить новостные RSS daemons/newslist.rb:
  27. 27. Ценные советы ✔ Бэкапы — это твой бро ✔ Логи — это твой бро ✔ Админка для вывода информации из БД — это твой бро ✔ Идти на поводу у менеджеров и frontend- разработчиков — это не твой бро
  28. 28. Клиент к API. Гем weary Weary is a framework and DSL for building clients for (preferably RESTful) web service APIs. At its most minimal, Weary is simply some nice syntactic sugar around Net/HTTP.
  29. 29. Клиент к API. Гем weary lib/appstore_client.rb
  30. 30. Клиент к API. Гем weary lib/appstore_client/config.rb
  31. 31. Клиент к API. Гем weary lib/appstore_client/client.rb
  32. 32. Клиент к API. Использование сonfig/initializers/appstore_client.rb
  33. 33. Клиент к API. Использование lib/appstore_service.rb
  34. 34. Спасибо за внимание!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×