我想結合Ember.js和Flask不安,但遇到接口JSON API的困難。預處理函數燒瓶不安
問題是我需要按摩JSON以匹配Ember期望的客戶端。
灰燼被髮送像這樣的POST
:
u'todo': {u'isCompleted': False, u'title': u'hello'}}
但瓶不寧預計這樣的事情
{'is_completed': False, 'title': u'hello'}
我能夠做到這一點的可以看到下面,但是由於瓶不安定的預處理程序不接受返回參數,並且數據對象必須在適當的位置進行更改,並創建一個包含我所需的新字典的操作。所以我需要通過添加和刪除我需要的鍵來笨拙地改變給定的數據字典。
有沒有人有更好的解決方案,容易擴展到更復雜的模型?
def ember_formatter(result):
for key in result.keys():
if key != 'objects':
del result[key]
result['todos'] = result['objects']
del result['objects']
def pre_ember_formatter(data=None, **kw):
data['is_completed'] = data['todo']['isCompleted']
data['title'] = data['todo']['title']
del data['todo']
restless_manager.create_api(
Todo,
methods=['GET', 'POST', 'DELETE', 'PUT', 'PATCH'],
url_prefix='/api',
collection_name='todos',
results_per_page=-1,
postprocessors={
'GET_MANY': [ember_formatter]
},
preprocessors={
'POST': [pre_ember_formatter],
}
)