我正在尝试将Flask-ReSTLess与Ember.js结合使用,效果不是很好。是GET响应使我感到震惊。例如,当我对GET发出/api/people请求时,例如Ember.js期望:

{
    people: [
        { id: 1, name: "Yehuda Katz" }
    ]
}

但是Flask-ReSTLess的回应是:
{
    "total_pages": 1,
    "objects": [
        { "id": 1, "name": "Yahuda Katz" }
    ],
    "num_results": 1,
    "page": 1
}

如何更改Flask-ReSTLess的响应以符合Ember.js的要求?我感觉它可能在后处理器函数中,但是我不确定如何实现它。

最佳答案

flask 扩展名为pretty readable source code。您可以创建一个GET_MANY后处理器:

def pagination_remover(results):
    return {'people': results['objects']} if 'page' in results else results

manager.create_api(
    ...,
    postprocessors={
        'GET_MANY': [pagination_remover]
    }
)

我没有测试过,但是应该可以。

关于python - 修改Flask-ReSTLess的JSON响应,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15442025/

10-16 03:44