(Хобби-кодер, пожалуйста, потерпите меня)
Я пытался найти это, но не смог найти шаблон или ответ, который смутил меня, поскольку это должно быть распространенной проблемой?
IПишу простой сервис оценки акций.Мой API принимает символ Stock, например, «stockdata / GOOG», и возвращает некоторую вычисленную статистику.Конечно, базовые данные об акциях часто меняются, и мне нужно время от времени пересчитывать.Я пытаюсь понять, как элегантно обрабатывать 2 вещи
1) Запросы пользователей на складе, мой сервис еще не видел : учитывая наличие 10000 ценных бумаг, это не кажется разумнымили необходимо, чтобы предварительно вычислить их все.REST мудрый, это смутило меня, хотя, как я понимаю, я должен действительно вернуть 404, если у меня нет данных.Дело в том, что если акция действительна, я могу получить базовые данные и вычислить свои собственные оценки.Как мне это сделать?В настоящее время я обновляю как побочный эффект, но это кажется неприятным.Единственный другой метод REST, который приходит на ум, - это попросить пользователей PUT / POST символ (без данных), и это может побудить меня создать / вычислить.Это кажется мне странным, так как все примеры, которые я видел, включают эти методы, предоставляющие много дополнительных данных для представления этого ресурса.(Все, что мне нужно, это сам символ, и мой сервис может сделать все остальное. То есть GET содержит всю информацию, необходимую для вычисления / создания ресурса)
2) Состояние обновления : какданные меняются все время, я хочу пересчитать, но не более одного раза в день, иначе я забиваю исходные серверы без необходимости.Как с вышеупомянутым, как я должен вызвать обновление?На данный момент мой GET проверяет валюту и обновления, если он старше, чем день, но опять же, это не кажется RESTy.Должен ли я просто вернуть устаревшие данные и снова предоставить их пользователю, чтобы он сделал еще один звонок для запроса обновления?Будет ли это хорошим вариантом использования патча?
Как вы посоветуете мои полезные нагрузки для этих POST / PUT / PATCH должны выглядеть?
Спасибо, Сев