gpt4 book ai didi

google-app-engine - 在POST中将数组/字典传递给Cloud Endpoint

转载 作者:行者123 更新时间:2023-12-03 12:17:56 25 4
gpt4 key购买 nike

我正在尝试找到一种方法,以允许用户使用POST将结构化的信息集作为POST的一部分传递到GAE中的云端点。

一个示例帖子如下。这取自Google Tracks API,但恰恰说明了我正在努力实现的目标

  {
"entities": [
{
"name": "Ford Fiesta 001",
"type": "AUTOMOBILE"
},
{
"name": "Chevrolet Volt 001",
"type": "AUTOMOBILE"
},
{
"name": "Chevrolet Volt 002",
}
]
}


从阅读Python云终结点文档开始,除非我可能允许在请求正文中发送自由格式的JSON片段,否则这是不可能的,这听起来不是一个好主意-并不是我已经尝试过了。

最佳答案

这很容易完成。在repeated=True继承类中构造messages.MessageField时需要使用messages.Message值,该类定义为端点函数的参数格式。示例代码:

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

# represents a car with a name and a type
class Car(messages.Message):
name = messages.StringField(1)
type = messages.StringField(2)

# represents a collection of Cars
class MultiCars (messages.Message):
cars = messages.MessageField(Car, 1, repeated=True)

# class to return a simple string message
class ResponseMessage (messages.Message):
value = messages.StringField(1)

# api code
@endpoints.api(name='gmerrallApi',version='v1',
description='Example API for gmerrall')
class ExampleApi(remote.Service):
# endpoints method to insert a MultiCars
@endpoints.method(MultiCars,
ResponseMessage,
name='cars.insertMulti',
path='/insertMultiCars/{entities},
http_method='POST')
def insertMultiCars(self, request):
for car in request.entities:
print "got car (%s, %s)" % (car.name, car.type)
return ResponseMessage (value="The endpoints function ran to the end")


请花一些时间查看此示例,并注意注释和消息类与您编写的端点代码交互的方式。此API方法接收的参数的JSON格式将与您使用的问题完全相同。 @endpoints.method批注中提供的类型信息告诉该方法如何根据这些类定义中的消息字段解释JSON blob。

关于google-app-engine - 在POST中将数组/字典传递给Cloud Endpoint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26729981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com