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

0 ответов

Другие вопросы по тегам