Иногда я разрешаю создавать / обновлять статус устройств IoT, используя необработанные данные.Это означает, что клиент может прочитать состояние устройства устройства как массив байтов и отправить эти данные через API.Данные анализируются сервером и отправляются обратно как обычный DTO.
Для создания я мог бы ввести следующий метод CreateStatusFromRawData
:
[HttpGet("{id}/status")]
[ProducesResponseType(200, Type = typeof(DeviceStatus))]
[ProducesResponseType(404)]
public async Task<IActionResult> GetStatus(Guid id)
{
// gets the device status
}
[HttpPost("{id}/status/rawdata")]
[ProducesResponseType(201, Type = typeof(DeviceStatus))]
[ProducesResponseType(404)]
public async Task<IActionResult> CreateStatusFromRawData(Guid id, [FromBody]byte[] rawdata)
{
// some parsing logic
return CreatedAtAction(nameof(GetStatus), new {id})
}
Я хотел бы сделать то же самое для обновленияоперация:
[HttpPut("{id}/status/rawdata")]
[ProducesResponseType(200, Type = typeof(DeviceStatus))]
[ProducesResponseType(404)]
public async Task<IActionResult> UpdateStatusFromRawData(Guid id, [FromBody]byte[] rawdata)
{
// some parsing logic
return **UpdatedAtAction**(nameof(GetStatus), new {id})
}
Как может выглядеть реализация метода ОбновленоAtAction?Итак, я хочу на самом деле 3 вещи:
- Возврат статуса 200
- Возвращение обновленного статуса DTO
- Предоставление правильного заголовка местоположения для получения статуса позже через метод GET