использовать с пользовательской функцией для обработки множественного наследования с помощью es6
var aggregation = (baseClass, ...mixins) => {
let base = class _Combined extends baseClass {
constructor (...args) {
super(...args)
mixins.forEach((mixin) => {
mixin.prototype.initializer.call(this)
})
}
}
let copyProps = (target, source) => {
Object.getOwnPropertyNames(source)
.concat(Object.getOwnPropertySymbols(source))
.forEach((prop) => {
if (prop.match(/^(?:constructor|prototype|arguments|caller|name|bind|call|apply|toString|length)$/))
return
Object.defineProperty(target, prop, Object.getOwnPropertyDescriptor(source, prop))
})
}
mixins.forEach((mixin) => {
copyProps(base.prototype, mixin.prototype)
copyProps(base, mixin)
})
return base
}
class Colored {
initializer () { this._color = "white" }
get color () { return this._color }
set color (v) { this._color = v }
}
class ZCoord {
initializer () { this._z = 0 }
get z () { return this._z }
set z (v) { this._z = v }
}
class Shape {
constructor (x, y) { this._x = x; this._y = y }
get x () { return this._x }
set x (v) { this._x = v }
get y () { return this._y }
set y (v) { this._y = v }
}
class Rectangle extends aggregation(Shape, Colored, ZCoord) {}
var rect = new Rectangle(7, 42)
rect.z = 1000
rect.color = "red"
console.log(rect.x, rect.y, rect.z, rect.color)
Хотя объемные операции (например, пакет создают) важны во многих системах, они официально не обращены стилем Архитектуры RESTful.
я нашел, что, ОТПРАВЛЯЯ набор, поскольку Вы предложили в основном работы, но проблемы возникают, когда необходимо сообщить об отказах в ответ на такой запрос. Такие проблемы хуже, когда многократные отказы происходят по различным причинам или когда сервер не поддерживает транзакции. Мое предложение Вам - то, что, если нет никакой проблемы производительности, например, когда поставщик услуг находится на LAN (не WAN) или данные, является относительно маленьким, это стоит того для отправления 100 запросов POST к серверу. Сохраните его простым, запуститесь с отдельных запросов и если у Вас есть попытка производительности задач оптимизировать.
Ваша идея кажется допустимой мне. Реализация является вопросом Вашего предпочтения. Вы можете использовать JSON или просто параметры для этого ("order_lines []" массив) и делаете
POST /orders
, Так как Вы собираетесь создать больше ресурсов сразу в единственном действии (порядок и его строки), жизненно важно проверить каждого из них и сохранить их, только если все они передают проверку, т.е. необходимо сделать это в транзакции.
Вы не захотите отправлять HTTP-заголовки за 100 аккуратностью. Вы ни один не хочет генерировать больше запросы, чем необходимый.
Отправляют целый заказ в одном объекте JSON к серверу, к: сервер/порядок или сервер/порядок/новый. Возвратите что-то, что указывает на: server/order/order_id
Также рассматривает использование <ударяют>, СОЗДАЮТ забастовку> ПОМЕЩЕННЫЙ вместо POST
Думаю, лучше отправлять отдельные запросы в пределах одного соединения . Конечно, ваш веб-сервер должен его поддерживать