我正在使用cloudant
python库连接到我的cloudant帐户。你知道吗
以下是我目前掌握的代码:
import cloudant
class WorkflowsCloudant(cloudant.Account):
def __init__(self):
super(WorkflowsCloudant, self).__init__(settings.COUCH_DB_ACCOUNT_NAME,
auth=(settings.COUCH_PUBLIC_KEY,
settings.COUCH_PRIVATE_KEY))
@blueprint.route('/<workflow_id>')
def get_single_workflow(account_id, workflow_id):
account = WorkflowsCloudant()
db = account.database(settings.COUCH_DB_NAME)
doc = db.document(workflow_id)
resp = doc.get().json()
if resp['account_id'] != account_id:
return error_helpers.forbidden('Invalid Account')
return jsonify(resp)
这个Flask
控制器内部将有CRUD
操作,但是对于当前的实现,在对要查看/操作的文档执行操作之前,我必须在每个方法中设置account
和db
变量。如何清理(或干涸)代码,以便只需调用主WorkflowsCloudant
类?你知道吗
不能将
RestTemplate
用于异步请求,这就是AsyncRestTemplate
的用途。您需要实现自己的AsyncClientHttpRequestFactory
。我简单地查看了你在帖子中提供的链接,看起来你可以包装一个AsyncRestClient
并从AsyncClientHttpRequestFactory.createAsyncRequest
返回BoundRequestBuilder
。接下来,基本上需要将调用从特定于Spring的接口委托给特定于AsyncRestClient
的类。这不应该太难也就是说,Spring5Web附带了一个WebClient来实现异步等功能。我建议在构建自己的异步库之前认真考虑一下,尽管是在另一个库的基础上
这是spring RestTemplate的官方java文档
编辑: 好了,给你一个填鸭式的回答:
HttpComponentsAsyncClientHttpRequestFactory自4.0以来就是spring的一部分
相关问题 更多 >
编程相关推荐