В разных проектах я придерживался очень простой идеи.Вызовите собственные действия с настраиваемого маршрута
Каждый раз, это то же самое. Я хочу добавить новую запись в ассоциацию, но захватить родителя без его первичного ключа.
Например, давайте API/модели/car.js модель:
module.exports = {
attributes: {
licensePlate: {
type: 'integer',
required: true,
unique: true
},
locations: {
collection: 'location',
via: 'car'
}
}
};
и Ан API/модели/location.js модель:
module.exports = {
attributes: {
coordinates: {
type: 'array',
required: true
},
car: {
model: 'car'
}
}
};
A автомобиль может иметь несколько мест, в одном месте есть один автомобиль.
Я могу добавить местоположение в автомобиле с помощью the native addTo
blueprint action
POST /car/1/locations
{"coordinates":[2.13654,50.323654]}
Теперь, что если по какой-то причине, у меня нет доступа к идентификатору автомобиля, и чувствовать, как с помощью другого поля, как уникальный licensePlate?
В принципе, я хотел бы сделать пользовательский маршрут внутри конфигурации/маршрутов, как
POST /car/byplate/:licensePlate/locations': {
controller: 'Car',
action: 'addLocationByPlate'
}
Для того, чтобы иметь возможность вызвать
POST /car/byplate/AW45RE65/locations
{"coordinates":[2.13654,50.323654]}
А вот проблема ... открытие мой новый новый контроллер действий, я понимаю, что, несмотря на выбор моего автомобиля пластинкой, следующая логика (валидация, создание местоположения, публикация местоположения, публикация местоположения, добавление в каталог местоположений автомобилей, публикация размещения местоположения, обработка ошибок) - уже реализовано в sails.js ядро.
Так вот вопрос:
Как правильно назвать нативный действие Blueprint с настраиваемым маршрута?
Здравствуйте. Спасибо, но я сказал, что * «И вот проблема ... открытие моего нового нового контроллера действий, я понимаю, что, несмотря на выбор моей машины пластинкой, следующая логика (валидация, создание местоположения, создание местоположения publish, location add to *) –
1) Вы возвращаете 200, где sails.js вернет 201. 2) Вы ничего не публикуете для публикации в блоке sails.js. но не «созданный» ни «добавленный». 3) Вы не делаете никаких валидаций. 4) Вы не обрабатываете никаких ошибок. –
И я не обвиняю вас.Потому что это ** сложно **. Моя реальная проблема заключается в том, что я не хочу об этом думать, потому что она уже реализована ** в sails.js =>, поэтому я использую фреймворк –