In meiner MEAN Anwendung habe ich ein Produktmodell wie folgt aus:Mehrere Ressourcen in einem Dienst
product: {
field: //some string value//,
reviews: //an array of review objects//
}
Jetzt habe ich für verschiedene Einschränkungen anwenden werde field
und reviews
zu speichern, so dass meine API-Endpunkte so sein wird :
/* specific route for updating reviews */
router.put('/products/reviews/:id', checkRightsToUpdateReviews, updateProductReviews);
/* specific route for updating field */
router.put('/products/:id', checkRightsToUpdateField, updateProductField);
Diese Endpunkte durch mein Eckige Service productData
jeweils über Methoden productData.updateReview(product)
und productData.updateField(product)
erreicht werden.
So in meinem productData
Service, bin ich mit zwei Ressourcen:
One mit url /products/reviews/:id
für die updateReview
Methode und eine mit url /products/:id
für die updateField
Methode.
Ich fühle mich wie mache ich nicht die Trennung von Anliegen richtig.
Das Problem rührt von der Tatsache her, dass mein Modell Felder hat, die unterschiedlich behandelt werden müssen. Aber es macht für mich Sinn, alle CRUD-Operationen für products
in einem Dienst zu haben.
Was wäre eine offensichtlich elegantere Lösung dafür?