首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >apiclient.discovery.build请求体

apiclient.discovery.build请求体
EN

Stack Overflow用户
提问于 2015-12-24 23:11:17
回答 2查看 1.4K关注 0票数 4

我的服务器代码和我的客户端都使用python。我已经有很多客户端服务器的GET请求在工作,现在是发布请求的时候了,我被困住了。我的相关客户代码:

代码语言:javascript
复制
service = build("myAPI", "v1", http=http, discoveryServiceUrl=DISCOVERY_URL)
service.updateUser(websafeKey=websafeKey).execute()

我想不出如何构建POST请求的主体。在那之后,我将试图弄清楚如何告诉service有关它,以便它可以发送请求到我的updateUser API。

POST请求主体将需要包含一些字符串和几个列表,稍后可能还需要一个python对象。

我的updateUser API在API中工作得很好--我可以一整天都成功地使用updateUser

代码语言:javascript
复制
USER_POST_REQUEST = endpoints.ResourceContainer(
UserForm, websafeKey=messages.StringField(1),)
@endpoints.method(USER_POST_REQUEST, UserForm,
        path='useradmin/{websafeKey}',
        http_method='PUT', name='updateUser')
def updateUser(self, request):
    """Update user w/provided fields & return w/updated info."""
    return self._updateUserObject(request)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-18 16:28:43

我自己想出来的。显然,您所需要做的就是定义一个字典,并将它作为服务方法调用中的body参数传递。我所做的是:

代码语言:javascript
复制
body = {'key1': user['info1'], 'key2': user['info2']}
service = build("myAPI", "v1", http=http, discoveryServiceUrl=DISCOVERY_URL)
service.updateFan(websafeFanKey=fan['websafeKey'], body=body).execute()

很简单,真的,但我确实很难找到任何记录这件事的东西。希望其他人能从中受益。

票数 8
EN

Stack Overflow用户

发布于 2021-11-30 08:19:07

代码语言:javascript
复制
body = {"messages":"XXX"}

pubsubpublisher = googleapiclient.discovery.build('pubsub', 'v1', credentials=credentials)

response = pubsubpublisher.projects().topics().publish(topic='projects/{project-number}/topics/{topic-name}',body=body).execute()

这行得通

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34458665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档