API REST: добавить «массовую» в API для создания массовых создания на том же ресурсе? - PullRequest
0 голосов
/ 31 августа 2018

У меня есть ресурс class. Мне нужно два API:

  1. массовое создание классов
  2. создать один класс.

В стандартах REST я должен создать 2 API:

  1. /classes/bulk/ --- для массового создания
  2. /classes/ --- для создания одного класса.

Мне кажется, что этот подход НЕ РЕЗУЛЬТАТ или нет? Для этого лучше использовать параметр запроса: /classes?type=bulk?

Кроме того, логика обработки и схема ответа для 200 различны для массового и не массового вызова

1 Ответ

0 голосов
/ 31 августа 2018

Этот подход мне не кажется RESTful или нет?

Написание URI не относится к архитектуре REST. Добавление /bulk к URI или нет не сделает ваше приложение более RESTful или нет.


В качестве альтернативы для использования /bulk в URI, вы можете использовать тот же URI для обработки создания одного или нескольких ресурсов. Учтите, что вашим ресурсом является сообщение . Тогда вы могли бы иметь следующее:

POST /api/messages HTTP/1.1
Host: example.org
Content-Type: application/json

{ 
  "to": "John"
  "content": "Hi"
}
POST /api/messages HTTP/1.1
Host: example.org
Content-Type: application/json

[
  { 
    "to": "John"
    "content": "Hi"
  },
  { 
    "to": "James"
    "content": "Hey"
  },
  { 
    "to": "Sarah"
    "content": null
  }
]

Также важно помнить, будет ли операция атомной или нет. Если одно сообщение содержит неверные данные, вы можете или не можете отклонить весь запрос.

Если операция является атомарной , вы можете использовать 400 или 422, чтобы сообщить о недействительных данных. Если операция не является атомарной , вы можете использовать 207, чтобы сообщить о результате операции каждого ресурса.

...