在执行之前使用?where =修改GET请求或建立双重关系

时间:2019-05-30 13:16:10

标签: python eve

我有一个在Python-Eve上运行的API,并且我已经建立了从一个集合中的一个键到另一个集合中的对象的关系设置(所以键类型是Relation / ObjectID)。我的问题是,在一段时间内,这种关系是基于其他键(“名称”而不是“ ObjectID”)建立的,并且公司的一半都考虑到了这种自动化。因此他们使用

"?where={"region":"name_here"}和另一半 "?where={"region":"objectID_here"}

有人问我是否有可能使它们两者都起作用。

据我所知-无法在模式定义中创建它(在两个键上有关系),所以我尝试动态修改GET请求(执行类似"if {"region"}的操作是字符串我尝试了app.on_pre_GET事件挂钩,但看起来无法执行我想要的操作。我试图在GET挂钩中使用“查找”,但发送时不起作用? where子句(或where什么时候不匹配?),因此我尝试修改url本身,但看起来无法更新args列表或url(只是获取但不保存回来?)

'region':{
    'type':'objectid',
    'data_relation':{
        'resource':'regions',
        'field':'_id',
        'embeddable': True
        },
    }

我想使用吗?带有相同键的两个可能值的where子句:

GET apiurl:/vms?where={"region":"some_region_name"} 
GET apiurl:/vms?where={"region":"5ceeef108941633fc78cdef1"}

(两个请求都应返回相同的结果)

0 个答案:

没有答案