Разместить массив объектов в REST API
Я разрабатываю REST API, который должен иметь возможность принимать массив объектов, скажем
[
{
'name': 'Alice',
'age': 15
},
{
'name': 'Bob',
'age': 20
},
...
]
действительно, API может иметь метод для принятия одного объекта, который будет вызываться в цикле. Однако по соображениям производительности я хочу опубликовать несколько объектов в одном запросе.
какой самый элегантный способ сделать это? Пока моя единственная идея-использовать JSON, например:
post_params = { 'data' : to_json_string([ { 'name' : 'Alice', 'age' : 15 },
{ 'name' : 'Bob', 'age' : 20 },
...
])
};
post(url, post_params);
это нормально, или я должен использовать совершенно другой подход?
2 ответов
нет необходимости обертывать массив в другой объект с помощью data
собственность. Массив сам по себе является допустимым JSON:
post_params = JSON.stringify([ { 'name' : 'Alice', 'age' : 15 },
{ 'name' : 'Bob', 'age' : 20 },
...
]);
post(url, post_params);
просто убедитесь, что ваш API также ожидает этот массив.
В основном, ответ, который я искал, был:
- нет необходимости использовать
Content-Type: application/x-www-form-urlencoded
что является стандартным в web; вместо этого,Content-Type: application/json
следует использовать, -
весь HTTP-запрос выглядит следующим образом:
POST /whatever HTTP/1.1 Host: api.example.com Content-Type: application/json [ { 'name': 'Alice', 'age': 15 }, { 'name': 'Bob', 'age': 20 }, ... ]