SlideShare a Scribd company logo
1 of 6
Steve Klabnik. Desiging Hypermedia APIs




REST(Representational State Transfer) - передача представления состояния
    Ресурс
    Представление
    Вот копия объекта который нужен

Hypermedia API
    Ресурс
    Представление
    Hypermedia
    Вот состояние объекта и что с ним можно сделать
Steve Klabnik. Desiging Hypermedia APIs




Разработчики используют REST не правильно
   Копирование логики на клиенте
   Передача объекта по сети
Steve Klabnik. Desiging Hypermedia APIs




Цели создания API
    Долгосрочность
    Независимость


API должен работать как браузер
    Браузер не знает ничего о сайтах


Браузер – лучший клиент
Wynn Netherland. The UX of APIs

Патерны
   OAuth
   В теле ответа использовать максимум полезной информации
   Создавать что-то значимое
   Использовать статус-коды HTTP
   Объявлять об изменениях, предупреждать
   Делать понятную документацию
   Создавать руководство пользователя
   Консоль для API, веб версия
   Быстрая, прозрачная поддержка
   Примеры
   Mashup friendly
   Передавать версию в заголовках
Wynn Netherland. The UX of APIs

Антипатерны
   Сумасшедшие урл
   Жесткие лимиты на запросы(по количеству)
   Путать тело с заголовками
   Бесконечное изменение
   Противоречивость(id, login)
   Использовать пулинг(грузит сервер)
Дмитрий Галинский.
                               Опыт разработки одностраничного приложения

Backbone JS
    Есть проблемы с моделями


Презентеры
    Rabl
    jBuilder(быстрее)


Underscore.js – расширяет возможности JS

Рендер на клиенте медленнее и требует больше кода
Нет «помощников»
В JS объектная модель хуже чем в Ruby

More Related Content

Viewers also liked

Введение в Scrum
Введение в ScrumВведение в Scrum
Введение в Scrum
Sergey Semyonov
 

Viewers also liked (7)

Scrum
ScrumScrum
Scrum
 
Scrum! v1.1
Scrum! v1.1Scrum! v1.1
Scrum! v1.1
 
Введение в Scrum
Введение в ScrumВведение в Scrum
Введение в Scrum
 
Agile Scrum Methodology
Agile Scrum MethodologyAgile Scrum Methodology
Agile Scrum Methodology
 
Введние в Scrum
Введние в ScrumВведние в Scrum
Введние в Scrum
 
Activism x Technology
Activism x TechnologyActivism x Technology
Activism x Technology
 
How to Battle Bad Reviews
How to Battle Bad ReviewsHow to Battle Bad Reviews
How to Battle Bad Reviews
 

Similar to Railsclub 2012

API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
Ontico
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Ontico
 
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest
 
Что такое Java? Кто такой Java разработчик?
Что такое Java? Кто такой Java разработчик?Что такое Java? Кто такой Java разработчик?
Что такое Java? Кто такой Java разработчик?
GetITAbroad
 
разработка RESTful api with all bells and whistles
разработка RESTful api with all bells and whistles разработка RESTful api with all bells and whistles
разработка RESTful api with all bells and whistles
Yandex
 

Similar to Railsclub 2012 (20)

Web and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard LebedyukWeb and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard Lebedyuk
 
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
 
Павел Федотовский «Документация REST API c использованием Swagger»
Павел Федотовский «Документация REST API c использованием Swagger»Павел Федотовский «Документация REST API c использованием Swagger»
Павел Федотовский «Документация REST API c использованием Swagger»
 
Лекция 5 Серверная разработка
Лекция 5 Серверная разработкаЛекция 5 Серверная разработка
Лекция 5 Серверная разработка
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
 
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
 
Windows azure общий обзор
Windows azure общий обзорWindows azure общий обзор
Windows azure общий обзор
 
Yii rit 2010
Yii rit 2010Yii rit 2010
Yii rit 2010
 
HTML5 WebSockets and WebWorkers
HTML5 WebSockets and WebWorkersHTML5 WebSockets and WebWorkers
HTML5 WebSockets and WebWorkers
 
Тестирование мобильных API: Behind The Scenes
Тестирование мобильных API: Behind The ScenesТестирование мобильных API: Behind The Scenes
Тестирование мобильных API: Behind The Scenes
 
Symfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork EnterpriseSymfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork Enterprise
 
Node.js Меньше сложности, больше надежности Holy.js 2021
Node.js Меньше сложности, больше надежности Holy.js 2021Node.js Меньше сложности, больше надежности Holy.js 2021
Node.js Меньше сложности, больше надежности Holy.js 2021
 
Мировые информационные ресурсы. Лекция 5
Мировые информационные ресурсы. Лекция 5Мировые информационные ресурсы. Лекция 5
Мировые информационные ресурсы. Лекция 5
 
"Посмотрим на Акку-Джаву" Дмитрий Мантула
"Посмотрим на Акку-Джаву" Дмитрий Мантула"Посмотрим на Акку-Джаву" Дмитрий Мантула
"Посмотрим на Акку-Джаву" Дмитрий Мантула
 
Let's Take a Look at Akka-Java
Let's Take a Look at Akka-JavaLet's Take a Look at Akka-Java
Let's Take a Look at Akka-Java
 
"Посмотрим на Акку-Джаву" Дмитрий Мантула
"Посмотрим на Акку-Джаву" Дмитрий Мантула "Посмотрим на Акку-Джаву" Дмитрий Мантула
"Посмотрим на Акку-Джаву" Дмитрий Мантула
 
Что такое Java? Кто такой Java разработчик?
Что такое Java? Кто такой Java разработчик?Что такое Java? Кто такой Java разработчик?
Что такое Java? Кто такой Java разработчик?
 
разработка RESTful api with all bells and whistles
разработка RESTful api with all bells and whistles разработка RESTful api with all bells and whistles
разработка RESTful api with all bells and whistles
 
ITmozg, Даниил Павлючков
ITmozg, Даниил ПавлючковITmozg, Даниил Павлючков
ITmozg, Даниил Павлючков
 
Cага о сагах
Cага о сагахCага о сагах
Cага о сагах
 

Railsclub 2012

  • 1. Steve Klabnik. Desiging Hypermedia APIs REST(Representational State Transfer) - передача представления состояния Ресурс Представление Вот копия объекта который нужен Hypermedia API Ресурс Представление Hypermedia Вот состояние объекта и что с ним можно сделать
  • 2. Steve Klabnik. Desiging Hypermedia APIs Разработчики используют REST не правильно Копирование логики на клиенте Передача объекта по сети
  • 3. Steve Klabnik. Desiging Hypermedia APIs Цели создания API Долгосрочность Независимость API должен работать как браузер Браузер не знает ничего о сайтах Браузер – лучший клиент
  • 4. Wynn Netherland. The UX of APIs Патерны OAuth В теле ответа использовать максимум полезной информации Создавать что-то значимое Использовать статус-коды HTTP Объявлять об изменениях, предупреждать Делать понятную документацию Создавать руководство пользователя Консоль для API, веб версия Быстрая, прозрачная поддержка Примеры Mashup friendly Передавать версию в заголовках
  • 5. Wynn Netherland. The UX of APIs Антипатерны Сумасшедшие урл Жесткие лимиты на запросы(по количеству) Путать тело с заголовками Бесконечное изменение Противоречивость(id, login) Использовать пулинг(грузит сервер)
  • 6. Дмитрий Галинский. Опыт разработки одностраничного приложения Backbone JS Есть проблемы с моделями Презентеры Rabl jBuilder(быстрее) Underscore.js – расширяет возможности JS Рендер на клиенте медленнее и требует больше кода Нет «помощников» В JS объектная модель хуже чем в Ruby