Мы находимся в процессе создания нового API для нашего продукта, который будет доступен через веб-сервисы. У нас есть внутренняя дискуссия о том, должен ли API быть максимально простым в использовании (за счет увеличения количества вызовов) или сделать его максимально эффективным (усложняя его использование). Например, вот две проблемы, которые возникли:
- Должны ли мы управлять информацией о сеансе на сервере или мы должны передать эту информацию пользователю и ожидать, что он отправит ее нам при необходимости? (Пожалуйста, игнорируйте последствия сеанса для безопасности)
- Должны ли мы объединять вызовы, которые могут быть последовательными, чтобы сэкономить время, затрачиваемое на передачу туда и обратно, даже если они на самом деле не имеют одинаковую логическую функциональность?
По сути, пользователи настольных компьютеров предпочитают понятный и простой в использовании API, в то время как интернет-пользователи хотели бы сделать его максимально эффективным. Это первый публичный API, который мы предоставляем, и нам нужна стратегия.
Лично я за то, чтобы сделать API максимально удобным для использования. Другие компоненты системы, вероятно, будут оказывать гораздо большее влияние на производительность, а сложные в использовании API-интерфейсы гораздо более подвержены ошибкам. Но я программист на рабочем столе ...
Итак, какой должна быть наша стратегия? Каковы общие практики при создании такого API?