2017-04-21 51 views
0

我在LoopBack项目中用基本的PUT挣扎了一下,但我找不到有关我的问题的任何信息。如果使用PUT添加一个条目一切正常,我只是传递我的数据,并在数据库中有一个新条目。现在我想替换一个条目,如PUT文档中所述(我正在使用API​​浏览器进行测试)。我的想法是传递'id'(除了已更改的数据)并且LoopBack将替换相应的条目。但是,这是行不通的,我得到的错误:LoopBack:我如何使用PUT替换条目

The `Model` instance is not valid. Details: `id` can't be set 

如何使用PUT来替换条目?

+0

你是否将id作为模型有效载荷的一部分传递,还是将它作为参数传递? – Acapulco

+0

我将它作为模型有效载荷的一部分传递给它。 – pbouda

+0

嗯..它可能是一个类型问题? [在这个例子中](https://loopback.io/doc/en/lb2/PersistedModel-REST-API.html),他们使用'{“id”:“98”,“name”:“L4”.. .'也许你传递一个int而不是一个字符串? – Acapulco

回答

0

PUT有效载荷中的id属性应该是可选的。如果您使用的是模型生成过程中设置了标准的环回模式CRUD终点,你有两个选择:

  1. 使用PUT /ModelName/{id}选项,其中LB将根据传入的查询参数找到模型实例URL。

  2. 使用POST /ModelName/{id}/replace端点。该端点将根据传递到URL中的id来替换给定模型实例的所有属性。

传递请求负载中的id属性对于两个端点都是可选的。 Loopback会根据URL的id参数找到模型实例。