Я нахожусь в середине внедрения RESTful API, и я не уверен в том, что поведение сообщества было принято за наличие данных, которые не могут измениться. Например, в моем API есть ресурс "файл" , который при создании содержит несколько полей, которые не могут быть изменены после создания, такие как двоичные данные файла и некоторые связанные с ним метаданные. Кроме того, "файл" может иметь письменное описание и связанные теги.
Мой вопрос касается выполнения обновления для одного из этих ресурсов файла. GET определенного "файла" возвращает все метаданные, описание и теги, связанные с файлом, плюс двоичные данные файла. Должен ли PUT определенного ресурса "файл" включать поля "только для чтения"? Я понимаю, что он может быть закодирован в любом случае: a) включать поля только для чтения в данные PUT, а затем проверить, соответствуют ли они оригиналу (или выдают ошибку), или b) игнорировать наличие только полей для чтения в данных PUT потому что они не могут измениться, никогда не выдавая ошибку, если они не совпадают или отсутствуют, потому что логика игнорирует их.
Похоже, он может идти в любом случае и быть приемлемым. Второй способ игнорирования полей только для чтения может быть более компактным, поскольку клиент API может пропустить отправку данных только для чтения, если они хотят; который кажется хорошим для людей, которые знают, что они делают...