REST требует единого интерфейса, что в HTTP означает ограничение себя GET, PUT, POST, DELETE, HEAD и т. Д.
Один из способов проверки правильности каждого файла в RESTful - это рассматривать проверку достоверности не как действие, выполняемое над файлом, а как отдельный ресурс:
GET /file/{file-id}/validity
Это может вернуть простое значение True / False или, возможно, список конкретных нарушений ограничений. Идентификатором файла может быть имя файла, целое число файлов, путь в кодировке URL или, возможно, незашифрованный путь, например:
GET /file/bob/dir1/dir2/somefile/validity
Другой подход - запросить список недействительных файлов:
GET /file/invalid
И еще один способ предотвратить добавление недопустимых файлов в вашу службу, т. Е. Когда ваша служба обрабатывает запрос PUT с неверными данными:
PUT /file/{file-id}
отклоняет его с HTTP 400 (неверный запрос). Тело ответа 400 может содержать информацию об определенной ошибке.
Обновление: чтобы удалить файл, вы, конечно, использовали бы стандартный HTTP REST глагол:
DELETE /file/{file-id}
Чтобы «обработать» файл, это создает новый файл (ресурс) из загруженного? Например, Flickr создает несколько разных файлов изображений для каждого загружаемого файла, каждый из которых имеет свой размер. В этом случае вы можете PUT входного файла и затем запустить обработку, ПОЛУЧЯ соответствующий выходной файл:
PUT /file/input/{file-id}
GET /file/output/{file-id}
Если обработка не является почти мгновенной, вы можете генерировать выходные файлы асинхронно: каждый раз, когда новый входной файл помещается в веб-службу, веб-служба запускает асинхронную операцию, которая в конечном итоге приводит к тому, что выходной файл становится создано.