"API для людей: как создать API, которым по-настоящему...

Preview:

Citation preview

Евгений ЧеботарёвChief Product Officer

API для людейКак создать API, которым по-настоящему пользуются

Немного историиО том как создавался 500px

В октябре 2009 году мы запустили 500px.com, в августе 2011 запустили API

API в 500px

0

375

750

1 125

1 500

September 2011 November 2011 January 2012 March 2012 May 2012 July 2012 September 2012 November 2012 January 2013 March 2013 May 2013 July 2013 September 2013

1.3 млрд.

API в 500px

• 1,3 миллиарда API запросов в месяц• 3600+ зарегистрированных разработчиков• 4000+ приложений использующих 500px API• 12 выделенных серверов• Интеграция с Flipboard, Vū, Google Glass, Flavors.me, Samsung TV, и т.д.• developers.500px.com

Зачем нужен API?Реализация ваших идей сторонними силами

Зачем нужен API?

• Возможность разрабатывать свои приложения• Работать с партнёрами• Использовать на хакатонах• Генерировать идеи силами сторонних разработчиков

Подход к созданию APIКак сделать разработку максимально удобной

Подход к созданию API

• Максимально упростить задачу разработчикам• Сделать API максимально “futureproof”, чтобы он оставался релеватным спустя годы

Моделирование за лидеромКак привлечь разработчиков к вашему API

Моделирование за лидером

• Две компании — две типа API• Flickr — устарелый тип API, но направленный на фотографию• Twitter — современный API, но не фото-ориентированный

Моделирование за лидером

• На момент создания 500px API более миллиона разработчиков использовали Twitter API• RESTful• JSON• OAuth• Convention over configuration

“Hit the Ground Running”Зная Twitter API легко начать разрабатывать под 500px API

Моделирование информацииПостоянный анализ требований разработчиков

Моделирование информации

• Анализ данных для понимания потребностей• Разбивка на логические классы

Моделирование информации

• Разбивка запроса фото с комментариями на два отдельных запроса: фото, комментарии• Результат обходится “дешевле”, и пользователи быстрее видят важный им результат (фото)

{    "photo":  {        "id":  4928401,        "user_id":  164677,        "name":  "Northern  Fulmar",        "description":  "Photographed  during  a  pelagic  trip  east  of  Cape  Cod.,        "camera":  "Canon  EOS-­‐1D  Mark  IV",        "for_sale":  false,        "width":  588,        "height":  750,        "votes_count":  36,        "favorites_count":  18,        "comments_count":  36,        "highest_rating":  97.1,        "highest_rating_date":  "2012-­‐04-­‐16T15:05:56-­‐04:00",        "image_url":  "http://pcdn.500px.net/4928401/16666558d7ba410f50922f86f736888d8cfaf9bb/4.jpg",        "images":  {"size":  4,  "url":  "http://pcdn.500px.net/4928401/16666558d7ba410f50922f86f736888d8cfaf9bb/4.jpg"}        "store_download":  false,        "store_print":  false,        "user":  {            "id":  164677,            "username":  "axelhildebrandt",            "firstname":  "Axel",            "lastname":  "Hildebrandt",            "city":  "Bethlehem",            "country":  "U.S.",            "fullname":  "Axel  Hildebrandt",            "userpic_url":  "http://acdn.500px.net/164677.jpg",            "upgrade_status":  0        }    }

To create code snippets, see http://ioni.st/post/980

Версия 1.0Минимальный набор

Версия 1.0

• Read-write• Базовые возможности сайта• Аутентификация (логин)• Постоянное развитие (v 1.0 просуществовал 2 дня)

RTFMДокументация превыше всего

RTFM

• Документация находится на Github• Разработчики могут предлагать правки, изменения и задавать вопросы• Документация постоянно улучшается• 128 коммитов, 11 авторов

Хорошая документацияГарантия того, что разработчики будут довольны

Взгляд с 10,000 метровРешение настоящих проблем с помощью аналитики

Взгляд с 10,000 метров

Проанализировать как пользуются API• Server performance• Оптимизация под массового потребителя• Среднее время запроса 100-120 мс

Взгляд с 10,000 метров

Feedback-driven development• Фото + комментарии• Гео-поиск• Будущие сервисы компании

API 2.0Взгляд в будущее

API 2.0

Утилитарное использование API• Цветовой анализ• Реверсивный геокодинг• Анализ лиц, объектов• Анализ качества фотографии (контраст, яркость, боке, композиция)

API 2.0

Marketplace• От небольших приложений• До коммерческого лицензирования

@tchebotarev#yac2013

Recommended