Что нужно разработчику, разрабатывающему и внедряющему API для сайта на базе сообщества, знать перед началом тяжелого кодирования? Там есть куча API-интерфейсов, например Twitter API, Facebook API, Flickr API и т.д., которые являются хорошими примерами. Но как бы вы создать свой собственный API?
Какие технологии вы бы использовали? Я думаю, что неплохо использовать REST-подобный интерфейс, чтобы API был доступен из разных платформ/клиентов/браузеров/инструментов командной строки ( например curl). Я прав? Я знаю, что все принципы веб-разработки должны выполняться как кеширование, доступность, масштабируемость, безопасность, защита от возможных DOS-атак, валидация и т.д. И когда дело доходит до API, некоторые из самых важных вещей - это обратная совместимость и документация. Я что-то пропустил?
С другой стороны, мышление с точки зрения пользователя (я имею в виду разработчика, который собирается использовать ваш API), что бы вы искали в API? Хорошая документация? Много примеров кода?
Этот вопрос был вдохновлен вопросом Джоэла Коэхорна "Что должен знать разработчик до создания общедоступного веб-сайта?" .
Этот вопрос является вики-сообществом, поэтому я надеюсь, что вы поможете мне разместить в одном месте все то, что нужно решать при создании API для веб-сайта, основанного на сообществе.