GET
API
http:IP:PORT/{
{version}}/model_name
query返回指定字段
正选
记录集返回id,name的数据
http:IP:PORT/{
{version}}/model_name?query={id,name}
反选
记录集返回除name之外的数据
http:IP:PORT/{
{version}}/model_name?query={-name}
内嵌返回
http:IP:PORT/{
{version}}/model_name?query={id,name,manager{name},dad{id,name}}
filter过滤返回数据
以domain的表示形式来筛选返回数据,可以查看我之前写的domain语法汇总
单条件
http:IP:PORT/{
{version}}/model_name?filter=[["kind", "=", "manpower"]]
多条件
http:IP:PORT/{
{version}}/model_name?filter=["|",["status", "=", "OK"],["status", "=", "READY"]]
&联合查询
使用&连接
http:IP:PORT/{
{version}}/model_name?query={id, name}&filter=[["id", ">", 60], ["id", "<", 70]]
page分页
page_size (optional) & page (optional)
http:IP:PORT/{
{version}}/model_name?query={id, name}&page_size=5&page=3
注意:prev、current、next和total_pages分别显示上一页、当前页、下一页和总页数
limit
限制返回数据条数
http:IP:PORT/{
{version}}/model_name?query={id, name}&limit=3
POST
body
接口形式
data
{
"params": {
"data": {
"name": "技术部",
}
}
}
Many2one
Many2one字段直接关联表的ID
{
"params": {
"data": {
"name": "技术部",
"dad":1 // dad是Many2one字段
}
}
}
One2many
1)新建
(0, 0,{ values })根据values里面的信息新建一个记录
在BODY中使用domain的表示形式
(0, 0,{ values }) 表示为
[0, 0,{“consumable”: “0.3”, “engineer_u_res”:1,}],
{
"params": {
"data": {
"name": "清理现场9",
"res_consume":[
[0, 0,{
"consumable": "0.3",
"engineer_u_res":1,
}],
], // res_consume是One2many字段
}
}
}
2)更新
(1,ID,{values}) 更新id=ID的记录(对id=ID的执行write 写入values里面的数据)
3)删除
(2,ID) 删除id=ID的数据(调用unlink方法,删除数据以及整个主从数据链接关系)
Many2many
1)新建一个记录
(0,0,{values}) 根据values里面的信息新建一个记录
2)更新一个记录
(1,ID,{values})更新id=ID的记录(写入values里面的数据)
3)删除一个数据及链接关系
(2,ID) 删除id=ID的数据(调用unlink方法,删除数据以及整个主从数据链接关系)
4)删除这个记录的链接关系,不删除其数据
(3,ID) 切断主从数据的链接关系但是不删除这个数据
5)新建这个记录的主从链接关系
(4,ID) 为id=ID的数据添加主从链接关系。
6)删除所有的记录的数据链接关系
(5) 删除所有的从数据的链接关系就是向所有的从数据调用(3,ID)
7)先删除所有记录的数据链接关系,再新建新的主从链接关系
(6,0,[IDs]) 用IDs里面的记录替换原来的记录(就是先执行(5)再执行循环IDs执行(4,ID))
例子:[(6, 0, [8, 5, 6, 4])] 设置 many2many to ids [8, 5, 6, 4]
context
传递上下文
{
"params": {
"context": {
"context_1": "context_1_value",
"context_2": "context_2_value",
....
},
"data": {
"field_1": "field_1_value",
"field_2": "field_2_value",
....
}
}
}
API
http:IP:PORT/{
{version}}/model_name
PUT
写法同POST
body
data
PUT的data写法同POST
filter
过滤数据
{
"params": {
"filter": [["id", "=", 95]],
"data": {
"name": "Test product"
}
}
}
context
上下文用于传递与记录更新相关的任何上下文
{
"params": {
"context": {
"context_1": "context_1_value",
"context_2": "context_2_value",
....
},
"filter": [["id", "=", 95]],
"data": {
"field_1": "field_1_value",
"field_2": "field_2_value",
....
}
}
}
operation
这只适用于一对多和多对多字段。
概念是,有时您可能不想替换one2many或many2many字段上的所有记录,相反,您可能想要添加其他记录或删除一些记录,这就是放置操作的地方。
基本上有三种PUT操作:push, pop和delete。
- push用于在已有的链接记录上添加/追加其他记录
- pop用于从正在更新的记录中删除/取消链接某些记录,但不会在系统上删除它们
- delete用于删除/解除链接并永久删除记录
{
"params": {
"filter": [["id", "=", 95]],
"data": {
"related_product_ids": {
"push": [102, 30],
"pop": [45],
"delete": [55]
}
}
}
}
API
http:IP:PORT/{
{version}}/model_name
DELETE
API
http:IP:PORT/{
{version}}/model_name/<int:id>
filter
http:IP:PORT/{
{version}}/model_name?filter=[["id", "=", 95]]