Skip to main content

odoo-api-integration

Odoo 18 external API integration — JSON-RPC, controllers, FastAPI patterns

Informações da origem

Repositório
Insightpulseai/odoo
Última atividade na origem
9 de abril de 2026 às 11:24
Idioma detectado do SKILL.md
inglês
Estrelas
6
Forks
2

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
odoo_api_integration
description
Odoo 18 external API integration — JSON-RPC, controllers, FastAPI patterns
category
integration
priority
high
version
1.0
# API Integration ## JSON-RPC (Primary External API) Endpoint: /jsonrpc ```python import json, urllib.request def rpc(url, service, method, *args): payload = json.dumps({ "jsonrpc": "2.0", "method": "call", "id": 1, "params": {"service": service, "method": method, "args": list(args)} }).encode() req = urllib.request.Request(url, payload, {"Content-Type": "application/json"}) return json.loads(urllib.request.urlopen(req).read())["result"] ``` ## Authentication ```python uid = rpc(url, "common", "authenticate", db, user, password, {}) ``` ## CRUD via execute_kw ```python rpc(url, "object", "execute_kw", db, uid, pwd, model, method, args, kwargs) # Methods: search, search_read, read, create, write, unlink, search_count ``` ## HTTP Controllers ```python from odoo import http class MyController(http.Controller): @http.route('/my/endpoint', type='json', auth='user', methods=['POST']) def my_endpoint(self, **kw): return {'status': 'ok'} ``` - Controller file: name after module (my_module.py), NOT main.py - type='json' for JSON-RPC, type='http' for standard HTTP - auth='user' (logged in), 'public' (anyone), 'none' (no session) ## OCA FastAPI (Recommended for Agent APIs) - Module: fastapi from OCA/rest-framework - Pydantic type safety, OpenAPI auto-docs - Native Odoo ORM access in routes - Preferred over custom controllers for AI agent communication ## Context Flags (Suppress Side Effects) ```python context = { 'no_reset_password': True, # No email invite 'mail_create_nosubscribe': True, # No follower subscription 'mail_notrack': True, # No tracking messages 'tracking_disable': True, # No field tracking } ``` ## Odoo 18 API Notes - Field: group_ids (not groups_id) on res.users - Portal/Internal User are exclusive groups — cannot assign both - Command tuples for relational writes: (4, id) add, (3, id) remove, (6, 0, [ids]) replace
Ver no GitHub