Odoo是一个开源的企业资源规划(ERP)系统,提供丰富的API接口供开发者集成和扩展。Odoo API主要有三种类型:
import xmlrpc.client
# 连接信息
url = 'http://your-odoo-server.com'
db = 'your_database_name'
username = 'your_username'
password = 'your_password'
# 公共API端点
common = xmlrpc.client.ServerProxy('{}/xmlrpc/2/common'.format(url))
# 认证并获取用户ID
uid = common.authenticate(db, username, password, {})
# 对象API端点
models = xmlrpc.client.ServerProxy('{}/xmlrpc/2/object'.format(url))
# 示例:查询产品
product_ids = models.execute_kw(db, uid, password,
'product.product', 'search',
[[['active', '=', True]]])
products = models.execute_kw(db, uid, password,
'product.product', 'read',
[product_ids], {'fields': ['name', 'list_price']})
print(products)
import requests
import json
url = "http://your-odoo-server.com/jsonrpc"
headers = {'Content-Type': 'application/json'}
# 登录获取session_id
def get_session():
data = {
"jsonrpc": "2.0",
"method": "call",
"params": {
"service": "common",
"method": "login",
"args": ["your_database_name", "your_username", "your_password"]
},
"id": 1
}
response = requests.post(url, data=json.dumps(data), headers=headers)
return response.json()['result']
session_id = get_session()
# 查询示例
def search_read(model, domain, fields):
data = {
"jsonrpc": "2.0",
"method": "call",
"params": {
"service": "object",
"method": "execute",
"args": [
"your_database_name",
session_id,
"your_password",
model,
"search_read",
[domain],
{"fields": fields}
]
},
"id": 2
}
response = requests.post(url, data=json.dumps(data), headers=headers)
return response.json()['result']
# 获取销售订单
orders = search_read("sale.order", [("state", "=", "sale")], ["name", "amount_total"])
print(orders)
需要先安装odoo-api-rest
模块,然后可以使用标准的HTTP请求:
import requests
base_url = "http://your-odoo-server.com/api"
auth = ("your_username", "your_password")
# 获取销售订单
response = requests.get(
f"{base_url}/sale.order",
auth=auth,
params={"filter[state]": "sale", "fields": "name,amount_total"}
)
orders = response.json()
print(orders)
# 分页查询示例
products = models.execute_kw(db, uid, password,
'product.product', 'search_read',
[[['active', '=', True]]],
{'fields': ['name', 'list_price'], 'limit': 100, 'offset': 0})
execute_kw
的批量方法通过合理使用Odoo API,可以实现强大的企业应用集成和自动化业务流程。
没有搜到相关的文章