Skip to main content

odoo-api-integration

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

Informations de source

Dépôt
Insightpulseai/odoo
Dernière activité de la source
9 avril 2026 à 11:24
Langue détectée de SKILL.md
anglais
Étoiles
6
Forks
2

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
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
Voir sur GitHub