Rest API Best Practice - одно действие и массовый - PullRequest
0 голосов
/ 20 января 2020

Позвольте моему серверу иметь возможность выполнять действие под названием «A».
Теперь моему серверу необходимо иметь дополнительную возможность выполнять массовые действия «A».

Маршрут на сервере это:
/entity/:entityId/'A'/:'A'Id

При добавлении объемной способности я столкнулся с двумя подходами:

1) Предоставление 2 маршрутов каждому методу:
/entity/:entityId/'A'/:'A'Id и
/entity/:entityId/'A' со списком идентификаторов «A» в теле запроса.

2) Удалите параметр 'A'Id и добавьте параметр запроса в первый маршрут с именем bulk с логическим значением:
/entity/:entityId/'A'/?bulk=boolean
И если bulk == true, то искать 'A'Id[] в теле запроса.
Иначе, если bulk == false, искать id запись в теле запроса.

Я чувствую, что 1-й подход лучше, я хотел бы услышать мысли или, может быть, совсем другой подход.

Любое мнение благословенно услышать,
Спасибо.

1 Ответ

1 голос
/ 20 января 2020

Параметры запроса хороши для GET методов, таких как:

curl -X GET host.com/megacorp/employee?employee_id[]=1&employee_id[]=2

Но для POST и PUT методов лучше использовать что-то вроде этого:

curl -XPOST host.com/megacorp/employee/_bulk -d '{"data":[
    {"id":"1", "name": "John Doe"},
    {"id":"2", "name": "Jane Doe"}
]}'

А для ресурса POST или PUT 1 - просто укажите 1 объект в запросе, например:

curl -XPUT host.com/megacorp/employee/1 -d '{
    "name": "JOHN DOE"
},'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...