То, о чем вы говорите, - это преобразование представления запроса (списка номеров) в состояние без сохранения состояния в представление ответа (одно число).
Позволяет классифицировать ваш ресурс:
- Без сохранения состояния - запрос без сохранения состояния, но и ресурс. Он должен быть в состоянии принять ваш запрос, обработать его и вернуть ответ без сохранения какого-либо внутреннего состояния. Дальнейшее обсуждение ниже.
- Вряд ли можно кешировать - я предполагаю, что ваши списки чисел никогда / редко бывают идентичны.
- Идемпотент - Запросы не имеют побочных эффектов. Это потому, что ресурс не имеет состояния.
Теперь давайте рассмотрим различные методы HTTP:
- GET - Получает состояние ресурса. Поскольку у вашего ресурса нет состояния, он не подходит для вашей ситуации. (идемпотент, кешируется)
- УДАЛИТЬ - Удаляет ресурс или очищает его состояние. Также не подходит для вашей ситуации. (не идемпотентный, не кешируемый)
- PUT - используется для установки состояния ресурса (или создания его, если он не существует). (идемпотент, не кешируется)
- POST - используется для обработки запросов, которые могут изменять или не изменять состояние ресурса. Может создавать другие ресурсы. (без гарантии идемпотентности - зависит от того, является ли ресурс состоящим из состояния или без состояния, не кешируется)
Как вы видите в других ответах, POST наиболее часто используется как синоним 'create'. Хотя это нормально, POST не ограничивается просто «созданием» в REST. Марк Бейкер хорошо объясняет это здесь: http://www.markbaker.ca/2001/09/draft-baker-http-resource-state-model-01.txt (Раздел 3.1.4).
Хотя POST не имеет идеального семантического отображения для вашей проблемы, это лучший из всех методов HTTP для того, что вы пытаетесь сделать. Это также приводит к простому, не зависящему от состояния и масштабируемому решению, которое является точкой REST.
В итоге, ответ на ваш вопрос:
- Метод: POST
- Запрос: представление списка номеров
- Ответ: представление одного числа (среднее по списку)
Хотя это может выглядеть как вызов веб-службы в стиле SOAP, это не так. Не позволяйте вашей интуитивной реакции на SOAP использовать ваш метод POST и накладывать на него ненужные ограничения.
KISS (будь проще, глупый).