从服务返回HTTP响应而不耦合到Falcon模块

2024-05-12 13:06:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在构建我的用户服务,并试图将其与API分离。当用户服务遇到错误时,它会按以下格式设置服务的错误属性:

{
    'message': '<user friendly error message>',
    'code': '<http code>'
}

但是,我根本不想在服务中引用falcon,因此实际上看起来是这样的:

self.error = {
    'message': 'Duplicate Email',
    'code': 409
}
return False

现在,一旦返回到API,我需要将其转换为falcon.HTTP_XXX对象,这样做的最佳方式是在路由中创建一个字典,以数字作为键,以falcon对象作为引用?例如:

responses = {
    409: falcon.HTTP_409
    400: falcon.HTTP_400
}

然后从用户服务获取返回值,然后解析对象是否将错误num作为索引传递? 比如:

 user = self.user_service.get_user()
 if not user:
     resp.status = responses[self.user_service.error.code]
     return

Tags: 对象selfapihttpmessagereturn格式错误