Учитывая модель ресурса проекта API, как я могу гарантировать, что только для чтения часть ресурса не обновляется?
У меня есть большая модель, которую я использую как для GET, так и для PUT на ресурсе. Модель включает в себя объект "аудита", например:
"audit": {
"createdAt": "2014-04-14T02:15:15Z",
"lastUpdatedAt": "2014-04-14T02:15:15Z",
"deletedAt": ""
}
Это, очевидно, часть ресурса, предназначенная только для чтения - есть ли способ показать это в модели контракта, поэтому для представления ответа GET появляется "аудит", а не представление запроса PUT?
Единственная альтернатива, которую я вижу, - это скопировать модель в тело PUT и удалить части, доступные только для чтения, но это исключает преимущество наличия единой модели, которую можно повторно использовать в различных методах.
1 ответ
Это пока невозможно. Возможности текущей модели ресурсов очень ограничены. Эта проблема аналогична пасеке: обратитесь к нескольким моделям в теле или используйте модель ресурса как массив.
Есть планы удовлетворить эту потребность и сделать чертежи более сухими в будущем - см. Вехи встраиваемых активов и черт.
Решение состоит в том, чтобы либо скопировать и вставить, либо, в вашем конкретном случае, не возвращать различные полезные данные в GET и PUT. Зачем ты это делаешь?