R Plumber API должен заполнять информационный фрейм значениями NA, если в строке тела запроса отсутствует ключ
У меня есть веб-сервер plumbr, написанный на R.
Запросы приходят со следующими значениями:
ID
SEX
AGE
REGION
TYPE
etc
Веб-сервер принимает запросы HTTP @POST в конечной точке /api. API таков, что он принимает массив объектов JSON с указанными выше "ключами". т.е.
[{"ID":1, "SEX":"M", "Age":25, "REGION":1, TYPE:"Individual", ...}, {"ID":2, "SEX":"F", "Age":32, "REGION":4, TYPE:"Group", ...}, ..., {"ID":10, "SEX":"M", "Age":22, "REGION":4, TYPE:"Individual", ...}]
Я хотел бы добавить некоторую логику в этот конкретный API, чтобы в случае, если объект в массиве пропустил один из требуемых ключей, plumbr затем вставил бы значения во входной фрейм данных в этой конкретной конечной точке, т.е.
curl localhost:5000/api --data '[{"ID":1, "Sex":"M", "Age":25, "Region":1, "Type":"Individual", ...}, {"ID":2, "Sex":"F", "Age":32, "Region":4, "Type:":"Group", ...}, ..., {"ID":10, "Sex":"M", "Age":22, "Region":4, "Type":"Individual", ...}]' -H "Content-Type: application/json"
Поскольку этот запрос "завершен", он сгенерирует фрейм данных
ID Sex Age Region Type ...
1 1 M 25 1 Individual
2 2 F 32 4 Group
... ... ... ... ... ...
10 10 M 22 4 Individual
Однако, если запрос был изменен, чтобы НЕ включать конкретные элементы, например, "Возраст" в первом объекте массива, "Пол" во втором объекте и "Тип" в последнем (10-м) объекте в массиве для этого примера, команда curl будет такой:
curl localhost:5000/api --data '[{"ID":1, "Sex":"M", "Region":1, "Type":"Individual", ...}, {"ID":2, "Age":32, "REGION":4, "Type":"Group", ...}, ..., {"ID":10, "Sex":"M", "Age":22, "Region":4, "Type":"Individual", ...}]' -H "Content-Type: application/json"
Поскольку этот запрос "завершен", он сгенерирует фрейм данных
ID Sex Age REGION TYPE ...
1 1 M <NA> 1 Individual
2 2 <NA> 32 4 Group
... ... ... ... ... ...
10 10 M 22 4 <NA>
Что было бы лучшим способом реализации этой логики в API plumbr