POST /tasks - post a URL to scrape
GET /tasks - returns a list of tasks
Это хорошо.Обратите внимание, что при успешном выполнении POST начинает действовать недействительность кэша. Общие клиенты будут знать, что ранее возвращенные представления списка задач больше не действительны.
GET /tasks/{id} - return a status? Or return the data?
Почему не оба?/tasks/{id}
идентифицирует ресурс;Вы можете использовать любой вид представления, который вам нравится.Нет причин, по которым представление не должно включать необязательные элементы.
(Herustic: как будет выглядеть веб-страница ?это одна концепция? Если нет, то это, вероятно, может быть единственным ресурсом в вашем API.)
что, если бы я также хотел представить записанные данные в виде HTML?
Один и тот же идентификатор подходит для нескольких представлений;клиент может использовать заголовок Accept для описания своих предпочтений для сервера.
Возможно, вы захотите немного подумать над тем, как клиент знает, какие представления возможны.В Интернете спецификация для HTML описывает множество различных видов ссылок - например, браузеры могут указывать разные предпочтения, когда они встречают тег сценария или тег изображения.Вам понадобится нечто подобное в ваших собственных типах мультимедиа.
Нет ничего плохого в том, что 1023 * решают, что все они также должны быть разными ресурсами.Любой подход может быть реализован способом, который соответствует архитектурному стилю REST.