Google Cloud Endpoints允许方法的返回类型

时间:2016-02-08 21:38:41

标签: json google-app-engine google-cloud-endpoints

我正在使用Cloud Endpoints开发REST API。我知道根据文档,每个API方法都应返回一个实体,然后该实体会自动转换为有效的JSON字符串。 但是,我正在处理一个身份验证库,在某些情况下会返回一个JSON,应该作为响应传递给客户端。

坚持使用默认方法,即返回实体,仍然是可能的,但它会涉及许多令人讨厌的中间步骤,例如解析JSON并根据JSON内容填充要返回的实体的正确字段

我想知道是否有更简单的方法来指示API直接返回JSON字符串,而不是将其转换为实体,只是将其转换回源JSON。

1 个答案:

答案 0 :(得分:0)

有一件事可能会对你有所帮助。 假设您有一个RPC响应类

from protorpc import messages
from protorpc import message_types
from protorpc import remote

class ApiResponse(message.Messages):
 response = messages.StringField(1, required = True)

您可以使用JSON模块在响应字段中返回JSON。首先在你的端点api中导入json

import json

假设您的回复是

json_response = [{'name': 'Jack', 'age':12}, {'name': 'Joe', 'age':13}]

在您对此API的回复中,您可以这样做: -

return ApiResponse(response = json.dumps({'data': json_response}))

json.dumps()将您的字典对象转换为可以传递给ApiResponse类响应的JSON字符串。

在客户端(javascript)收到响应后,您只需使用

将其解析为JSON即可
JSON.parse(response)