2017-02-09 15 views
2

LoopBack 3 APIから生成されたAngular SDKを使用していますが、$resource$save()メソッドの問題が発生しています。このメソッドはupsertアクションにマップされ、それ自体はpatchOrCreateにマップされます。問題はモデルのidを含む$save()を呼び出すとき、モデルオブジェクト全体がPATCH APIに送信されることです。私はMongoDBバックエンドを使用しており、idInjectionをtrueに設定しています。つまり、forceIdも真です。これは$save()に次のエラーがスローされます。LoopBack Angular SDKのアップカウントにPatchのIDが含まれているため、エラーが発生します

Unhandled error for request PATCH /api/Foo?id=58995169468d951cbf546ce4: ValidationError: The Foo instance is not valid. Details: id can't be set (value: 58995169468d951cbf546ce4).

私はfalseにforceIdを設定することで、このエラーを回避することができますが、それはセキュリティ上の問題を開きます。また、生成されたサービスファイルを変更し、実際のupsertアクションを$resourceに追加して、PATCHの代わりにPUTを使用し、URLを変更してidを組み込むことで回避できます。 IDについての警告は引き続き発生しますが、正常に動作し、エラーは発生しません。しかし、生成されたコードを編集することは私がやりたいことではありません。

これにはどのような解決策がありますか?私はまだ$save()を使用して、まだ生成されたファイルを編集するのではなく、セキュリティを維持したいと思います。

答えて

関連する問題