Я являюсь автором RESTProvider. Еще очень ранняя стадия, поэтому я бы не рекомендовал использовать ее в производстве. Я использовал его в нескольких проектах, которые находятся в производстве, но я адаптировал большинство кода для конкретных нужд. Я постараюсь получить публичный стабильный API к концу года.
Что касается доработки API, я бы предложил следующее:
- Использовать сжатие GZip
- Используйте ETags для кеширования
- Использование стандартов без изменений (я видел случаи, когда именование изменялось с oauth_token на my_token, что делает большинство библиотек бесполезными без изменений) - OAuth / REST
- Используйте создание / измененную временную метку и удаленные идентификаторы для всех объектов, чтобы включить кэширование на стороне клиента (условия конфликта SQLite):
{"myobject": {"creationAt": xxxx, "rid": "hashvalue"}}
4а. Используйте хороший способ для идентификации объекта, возвращаемого для пользователя / действия / приложения: opensocial использует «идентификатор приложения» + «идентификатор пользователя» + «идентификатор активности»
- Предпочитаю JSON, а не XML
- Предпочитают простоту (минимальная возможная глубина)
- Возвращает полный объект с отношением один ко многим в этом объекте:
{ "Родитель": ....
"has": {"полный объект, а не только идентификатор"}
}
- Не возвращать только идентификаторы ("category": [2,3,4] должно быть "category": [{"name": "testing", "id": 2}, {"name": " production "," id ": 3}})
- Считайте, что каждый вызов независим от друг друга (т.е. у меня должно быть достаточно информации для вызова http://test.com/object.json, чтобы заполнить мои взгляды)
Для документации:
1. предоставить тестовые серверы
2. предоставить cUrl для тестирования
3. предоставьте примеры скриптов в java / php / ruby и т. Д. *
Это все, что я могу сейчас думать. Я мог бы добавить это поверх этого, поскольку я пришел с большим предложением.