首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当type=为“json”时,Odoo控制器避免使用json-rpc。

当type为"json"时,Odoo控制器避免使用json-rpc。在Odoo中,控制器是用于处理HTTP请求的一种机制。而json-rpc是一种基于JSON格式的远程过程调用协议,用于在客户端和服务器之间进行通信。

在避免使用json-rpc的情况下,可以选择使用其他适合的方式来处理HTTP请求,如RESTful API或GraphQL。这些方式更加灵活和易于扩展,能够满足不同场景下的需求。

使用RESTful API时,可以通过定义不同的HTTP方法(GET、POST、PUT、DELETE等)和URL路径来实现对资源的操作。这种方式简单直观,适用于大多数Web应用程序的开发。对于Odoo,可以使用Odoo的REST API模块来实现RESTful API的功能。

另一种选择是使用GraphQL,它是一种用于API的查询语言和运行时环境。GraphQL允许客户端精确地指定需要的数据,避免了过度获取或不足的问题。在Odoo中,可以使用Odoo的GraphQL模块来实现GraphQL的功能。

无论是RESTful API还是GraphQL,都可以通过定义适当的路由和处理程序来实现对HTTP请求的处理。这些方式具有良好的可扩展性和灵活性,能够满足不同场景下的需求。

对于Odoo的控制器,可以使用以下方式来避免使用json-rpc:

  1. 使用Odoo的REST API模块,通过定义RESTful API的路由和处理程序来处理HTTP请求。可以使用@http.route装饰器来定义路由,并在处理程序中实现相应的逻辑。推荐的腾讯云相关产品是腾讯云API网关,可以通过API网关来管理和发布RESTful API,详情请参考腾讯云API网关
  2. 使用Odoo的GraphQL模块,通过定义GraphQL的路由和处理程序来处理HTTP请求。可以使用@http.route装饰器来定义路由,并在处理程序中实现相应的逻辑。推荐的腾讯云相关产品是腾讯云Serverless Cloud Function,可以通过Serverless Cloud Function来实现GraphQL的功能,详情请参考腾讯云Serverless Cloud Function

通过以上方式,可以避免使用json-rpc,实现对HTTP请求的处理,并根据具体需求选择合适的方式。这样可以提高系统的性能和可维护性,同时也能更好地满足用户的需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

odoo Web Controllers 学习总结

环境 odoo-14.0.post20221212.tar Web Controllers Controllers 控制器需要提供可扩展性,就像Model,但不能使用相同的机制,因为先决条件(已加载模块的数据库...因此,控制器提供了自己的与模型的扩展机制: 通过继承Controller创建控制器。.../usr/bin/env python # -*- coding:utf-8 -*- from odoo import http import json class TestApi(http.Controller...type – 请求类型,可选值: 'http' 、'json' auth – 身份验证方法的类型,可以是以下类型之一: user: 用户必须经过身份验证,执行当前请求的用户,必须具有对应的执行权限...cors – Access-Control-Allow-Origin cors 指令值 csrf (bool) – 是否为该路由开启CSRF 保护。 默认为 True。

1.3K20

Odoo开发指北 01 初识Odoo

客户端通过JSON-RPC或者XML-RPC与服务器进行通信。 开发 实现功能 数据访问功能:信息的增删查改。...继承开发 Odoo提供了大量现成的模块给我们使用,但是某些情况下,我们需要制定符合自己需求的功能模块。Odoo开发的一条黄金准则是——不要修改现有的模块,以免改动后的代码与原有模块产生混淆。...开发自己的模块时,需要在模块所在目录下,创建两个文件:init.py和__manifest__.py,在其中定义模块的初始化操作以及模块的描述。...然后使用自己的模块:把自己的模块路径设置到odoo中,重启odoo让其搜索到自定义模块,即可通过odoo进行安装。...static:静态资源文件,如css、js等 views:网页视图文件与模版文件(xml文件,使用QWEB语言进行描述) init.py manifest.py:描述文件 脚手架命令   使用

2.4K30
  • odoo wizard界面显示带复选框列表及勾选数据获取

    action_select_records_via_checkbox函数接收的args参数,其类型为字典,形如以下,其中f412cde5-1e5b-408c-8fc0-1841b9f9e4de为UUID...,供web端使用,用于区分不同页面操作的数据,'estate.property.offer_3'为供web端使用的记录ID,'data'键值代表记录的数据,其id键值代表记录在数据库中的主键id,context...以下属性皆在hasCheckBoxes 为"true"的情况下起作用。 modelName 点击列表复选框时,需要访问的模型名称,需要配合modelMethod方法使用,缺一不可。...> 说明: saveSelectionsToSessionStorage 为"true"则表示点击复选框时,将当前选取的记录存到浏览器sessionStorage中,可选 odoo14\custom\estate...odoo14\custom\estate\static\src\js\list_renderer.js 注意:之所以将uuid函数定义在list_renderer.js中,是为了避免因为js顺序加载问题

    5.3K60

    数据中心网络虚拟化 配置管理技术

    控制器通过OVSDB管理协议与OVS交互示例[1] 网络配置与管理协议目的是要实现网络设备的远程配置,因而其核心即为远程过程调用,例如XML-RPC、JSON-RPC和JAVA-RPC。...OVSDB使用JSON [RFC4627] 作为其数据库存储格式,并且使用轻量级的JSON-RPC 1.0作为配置和管理协议。...基于JSON-RPC协议,每个请求格式如下: 1{"method": "sayHello", "params": ["Hello JSON-RPC"], "id": 1} 其中,每个参数的含义为:...RESTCONF消息被放置在HTTP消息体中,消息可以使用XML或JSON格式,在请求的Content-Type header处指明是XML格式还是JSON格式。...两种消息格式分别对应YANG模块的XML-YANG和JSON-YANG。当数据库创建一个新资源时,会返回一个“Location”头,该头用于标识这个资源的路径。

    1.5K40

    【连载-4】数据中心网络虚拟化 配置管理技术

    控制器通过OVSDB管理协议与OVS交互示例[1] 网络配置与管理协议目的是要实现网络设备的远程配置,因而其核心即为远程过程调用,例如XML-RPC、JSON-RPC和JAVA-RPC。...OVSDB使用JSON [RFC4627] 作为其数据库存储格式,并且使用轻量级的JSON-RPC 1.0作为配置和管理协议。...基于JSON-RPC协议,每个请求格式如下: {"method": "sayHello", "params": ["Hello JSON-RPC"], "id": 1} 其中,每个参数的含义为: ✔ method...RESTCONF消息被放置在HTTP消息体中,消息可以使用XML或JSON格式,在请求的Content-Type header处指明是XML格式还是JSON格式。...两种消息格式分别对应YANG模块的XML-YANG和JSON-YANG。当数据库创建一个新资源时,会返回一个“Location”头,该头用于标识这个资源的路径。

    1.1K50

    在 Go 中使用 Aira2

    在 Go 中,可以使用标准库中的 net/http 包来发送和接收 JSON-RPC 请求。首先,需要构建一个 JSON-RPC 请求对象,并将其编码为 JSON 字符串,然后将其发送到服务器。...我们将创建一个 Request 结构体来表示 JSON-RPC 请求,并将其编码为 JSON 格式的字符串。...当 Aria2 接收到我们发送的 JSON-RPC 请求后,它会返回一个 JSON 格式的响应。我们需要解码这个响应,并提取出我们需要的信息。...JSON-RPC 请求格式错误: 可能由于构建 JSON-RPC 请求时参数错误或格式不正确等原因导致请求失败。...Aria2 返回的错误信息: 当收到 Aria2 返回的错误信息时,可以根据错误信息的内容来确定错误的原因,并采取相应的措施。

    24710

    以太坊中GraphQL简介及使用

    GraphQL 使用类型来保证应用只请求可能的数据,还提供了清晰的辅助性错误信息。应用可以使用类型,而避免编写手动解析代码。...二、以太坊为什么要使用GraphQL 以太坊在EIP1767[2]中描述了“在以太坊节点中使用GraphQL”的提案,在以太坊节点中使用GraphQL模式目的时完全替代使用JSON-RPC获取只读信息,...之所以引入GraphQL,是因为使用JSON-RPC有一些不足,这些不足包括: 1、对一些异常请求数据的判断的复杂性 如对空字符的判断,不同的地方对(""、"0x"、"0x0")的判断是不同的,会导致一些不必要的工作...针对JSON-RPC的这些不足,有的同学会说,那我通过修改JSON-RPC的接口,也可以避免上边的问题,但是这样增加接口的复杂性。而API查询语言GraphQL就能很好的解决上边的问题。...的向后兼容 GraphQL实现了JSON-RPC节点接口提供的大部分只读功能。

    1.5K10

    探究EVM全节点与存档节点的不同

    一个完整的节点会修剪区块链数据,以节省磁盘空间并减少同步时间,但在必要时存储足够的数据来重新计算链上的事件,使得它的运行效率更高,但它也限制请求特定数量的区块的数据(通常为 128 个区块)。...同样用来避免重复交易。 eth_getStorageAt 返回一个给定地址的存储位置的值,详情请见以太坊 Wiki eth_getStorageAt[30]。...存档节点是一个很好的开发工具,特别是当你需要查询过去的数据时,例如,如果你正在使用 Hardhat、Ganache 和其他开发框架来分叉主网,用于运行本地模拟区块链进行测试和开发,或者如果你在创建一个区块链资源管理器...方法: https://eth.wiki/json-rpc/API#the-default-block-parameter [14] eth_getBalance: https://eth.wiki/json-rpc...: https://eth.wiki/json-rpc/API#eth_gettransactioncount [17] eth_getStorageAt: https://eth.wiki/json-rpc

    1.3K20

    odoo ORM API学习总结兼orm学习教程

    例如states={'done':[('readonly',True)]},表示当state值为done时,将用户界面states所在字段在设置为只读(仅针对UI层面) 用法举例: state = fields.Selection...copy (bool) – 当记录重复时,该字段值是否被拷贝(在使用 ORM copy()方法复制并生成新记录时,不复制该字段的值)。...当未用到这些字段时,以禁用它以阻止创建或更新表中这些字段。 默认的 _log_access被设置为 _auto的值。...odoo.fields.parent_path 当_parent_store设置为True时,用于存储反映[_parent_name]树结构的值,并优化搜索domain中的child_of和parent_of...,但保留原始模块 扩展其他模块中定义的模型,替换以前的版本 将模型的一些字段委派给它包含的记录 经典继承 当同时使用_inherit和 _name 属性时,Odoo使用现有模型(通过_inherit提供

    13.5K10

    odoo 开发入门教程系列-约束(Constraints)

    , ] 练习--添加SQL约束 添加以下约束到对应模型: 房产预期价格必须为正数 房产售价必须为正数 报价必须为正数 房产标签名称和类型名称必须唯一 使用-u estate选项重新启动服务器以查看结果...为null时,也通过CHECK(selling_price > 0)校验的 修改odoo14\custom\estate\models\estate_property_tag.py,添加SQL约束...Python约束定义为用 constrains()修饰的方法,并在记录集上调用。修饰符指定约束中涉及哪些字段。当修改这些字段中的任何字段时,将自动计算约束。...警告 当和浮点数打交道时,总是使用从 odoo.tools.float_utils导入的float_compare() 和float_is_zero()方法 确保每次售价或者预期价格改变时,自动触发约束...当性能很重要时,总是首选SQL约束而不是Python约束。

    1.5K20

    第七章·监控系统-zabbix API及性能优化

    它使用JSON-RPC 2.0协议,这意味着两件事: 1.该API包含一组独立的方法; 2.客户端和API之间的请求和响应使用JSON格式进行编码。...请求的 Content-Type 头部必须设置为以下值之一: application/json-rpc, application/json 或 application/jsonrequest。...它具有以下属性: jsonrpc - API使用的JSON-RPC协议的版本; Zabbix API实现JSON-RPC版本2.0; method - 调用的API方法; params - 将被传递给...---- 添加主机 [root@web02 ~]# curl -s -X POST -H 'Content-Type:application/json-rpc ' -d ' { "jsonrpc...3) 使用zabbix-proxy分布式监控, 在大规模监控时用于缓解Zabbix-Server压力 4) 去掉无用监控项, 增加监控项的取值间隔, 减少历史数据保存周期(由housekeeper进程定时清理

    69710

    odoo 开发入门教程系列-继承(Inheritance)

    当你需要使用一条被修改后的结果集调用父方法时,可能需要使用后者。 危险提示 总是调用 super()以避免中断流非常重要。只有少数非常特殊的情况才无需调用它。 总是返回和父方法一致的数据。...创建报价时,设置房产状态为‘Offer Received’,如果用户试图以低于已存在报价的金额创建报价时抛出错误。 提示: 可在vals中获取property_id 字段,但是它是一个int型。...odoo中,第一种机制最常用。在我们的例子中,我们希望向现有模型添加一个字段,这意味着我们将使用第一种机制。...在我们的示例中为“models/inherited_model.py”。...xpath主体中的特定属性元素更改匹配元素的属性 当匹配单个元素时,可以直接在要查找的元素上设置position属性。

    2.3K20

    使用golang 实现JSON-RPC2.0

    远程过程调用(英语:Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。...相较于一般的 REST 通过网址(如 GET /user)调用远程服务器,JSON-RPC 直接在内容中定义了欲调用的函数名称(如 {“method”: “getUser”}),这也令开发者不会陷于该使用...更多JSON-RPC约定参见:https://zh.wikipedia.org/wiki/JSON-RPC 问题 服务端注册及调用 约定如net/rpc: the method’s type is exported...主要使用reflect这个包。代码如下: 1// 解析传入的类型及相应的可导出方法,将rcvr的type,Methods的相关信息存放到Server.m中。...目前基于TCP和HTTP实现了JSON-RPC,项目地址:github.com/yeqown/rpc 缺陷 只支持JSON-RPC, 且还没有完全实现JSON-RPC的约定。

    2K30

    odoo 开发入门教程系列-基本视图

    练习 -- 添加自定义表单视图 在合适的XML文件中为estate.property 定义视图 为了避免每次修改视图时都重新启动服务器,可以在启动服务器时添加--dev-xml,以便只刷新页面就可以查看视图修改...除了在使用方面的不同,他们的定义方式是一样的。 搜索视图根元素为。...例如,当在Product模型上使用时,以下domain选择单价高于1000的所有services: [('product_type', '=', 'service'), ('unit_price', '...例如,选择类型为“服务“或“单价”不介于1000和2000之间的产品 ['|', ('product_type', '=', 'service'), '!'...运算顺序 以二元运算为例,从左至右读入表达式,遇到一个操作符后跟随两个操作数时,则计算之,然后将结果作为操作数替换这个操作符和两个操作数;重复此步骤,直至所有操作符处理完毕。

    3.4K40

    JSON-RPC 2.0 规范(中文版)

    由于JSON-RPC使用JSON,它具有与其相同的类型系统(见http://www.json.org或RFC 4627)。...[1] 在请求对象中不建议使用NULL作为id值,因为该规范将使用空值认定为未知id的请求。另外,由于JSON-RPC 1.0 的通知使用了空值,这可能引起处理上的混淆。...响应表示为一个JSON对象,使用以下成员: jsonrpc 指定JSON-RPC协议版本的字符串,必须准确写为“2.0” result 该成员在成功时必须包含。...5.1错误对象 当一个rpc调用遇到错误时,返回的响应对象必须包含错误成员参数,并且为带有下列成员参数的对象: code 使用数值表示该异常的错误类型。 必须为整数。...6.批量调用 当需要同时发送多个请求对象时,客户端可以发送一个包含所有请求对象的数组。 当批量调用的所有请求对象处理完成时,服务端则需要返回一个包含相对应的响应对象数组。

    3.9K20

    odoo 开发入门教程系列-模块交互

    Odoo提供了一个开发票模块,因此直接从我们的房地产模块创建发票是很简单的,也就是说,一旦某个房产设置为“已售出”,就会在Invoicing应用程序中创建发票 一个具体示例: 记账凭证(Account...Move) 目标: 本节结束时: 创建一个estate_account 模块 创建房产时,为购买者开发票 预期效果动画地址:https://www.odoo.com/documentation...说明:__init__.py为空 重启服务,安装模块 创建发票 是时候生成发票了。我们希望为estate.property模型添加功能,即我们希望在出售房产时添加一些额外的逻辑。...Invoice对应 提示: 使用 self.env[model_name].create(values)创建一个对象, 其中values 为一个字典。...['account.move'].create({}) return super().set_property_sold() 当房产设置为“已售出”时,你现在应该在Invoiceing/

    1.7K10
    领券