Я разрабатываю REST API. Часть, над которой я сейчас работаю, включает в себя простое чтение объектов в виде данных JSON с сервера и их изменение.
Ресурс, который я собираюсь использовать для этого, выглядит следующим образом:
/ data / {имя таблицы} / {ключ строки}
Я бы хотел разрешить операции GET
и PUT
на этом ресурсе.
Вопрос, с которым я борюсь, заключается в том, что я хотел бы вернуть другие данные вместе с объектом JSON, такие как сообщения клиентов, количество времени, которое потребовалось для прохождения туда-обратно в базу данных и т. Д. Я хотел бы также хотел бы разрешить отправку аргументов запроса с полезной нагрузкой в тех случаях, когда URL был бы слишком длинным, если бы они были там включены.
Таким образом, ресурсы будут работать так:
GET
GET /data/{table name}/{row key}
Сервер возвращает:
{
data:{...JSON OBJECT GOES HERE ....},
message:"customer messages go here",
responseTime:'123ms',
otherInfo:"Yada yada yada;
}
PUT
PUT GET /data/{table name}/{row key}
Клиент отправляет в качестве полезной нагрузки:
{
data:{...JSON object goes here...},
queryArguments:{...extra long query arguments go here...}
}
Боюсь, это может нарушить правила для правильных ресурсов RESTful GET
и PUT
, потому что то, что вы отправляете на сервер, не совсем то, что вы получаете обратно, так как другая информация включается в полезную нагрузку. Я бы предпочел, чтобы каждая операция не была POST
лекарством.
Я слишком увлекаюсь этим? Есть ли какой-то другой способ, которым я должен структурировать это?
Спасибо!
Редактировать ::::
Следует отметить, что в ресурсе: /data/{table name}/{row key}
я использовал «имя таблицы» и «ключ строки» для простоты. Это для использования с базой данных noSQL. Этот ресурс предназначен для работы аналогично Amazon S3. "uuid" на самом деле было бы лучшим описанием, чем "ключ строки".