Python框架Flask实现接口API统一格式封装应用

2024-04-10 18:14 Python框架Flask实现接口API统一格式封装应用已关闭评论

当然,除了上述基本的CRUD操作(如GET获取用户信息)外,我们还可以在其他类型的API接口中使用统一响应格式封装。这里再举几个不同HTTP方法的例子:

# 继续上面的代码...

# 创建处理用户登录的资源类
class LoginResource(BaseResource):
    def post(self):
        json_data = request.get_json()
        username = json_data.get('username')
        password = json_data.get('password')

        try:
            # 假设authenticate_user是验证用户凭据的方法
            user, token = authenticate_user(username, password)
            if user and token:
                return self.make_response(data={'token': token})
            else:
                return self.make_response(error='Invalid credentials', status_code=401)
        except Exception as e:
            return self.make_response(error=str(e), status_code=500)

api.add_resource(LoginResource, '/api/login')

# 创建处理用户注册的资源类
class RegisterResource(BaseResource):
    def post(self):
        json_data = request.get_json()
        username = json_data['username']
        password = json_data['password']

        try:
            # 假设register_new_user是注册新用户的方法
            register_new_user(username, password)
            return self.make_response(message='User registered successfully')
        except DuplicateUsernameError:
            return self.make_response(error='Username already exists', status_code=409)
        except Exception as e:
            return self.make_response(error=str(e), status_code=500)

api.add_resource(RegisterResource, '/api/register')

在这些例子中:

  • LoginResource处理POST请求,用于用户登录验证。如果凭据有效,返回包含JWT令牌的响应;否则返回错误信息并设置HTTP状态码为401(未授权)。
  • RegisterResource同样处理POST请求,但用于用户注册。当用户成功注册时返回成功的消息,如果用户名已存在则返回409(冲突)状态码及相应错误信息。

每个资源类都通过调用父类BaseResource中的make_response方法确保了响应格式的一致性。

当前文章价值5.46元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

你可能感兴趣的文章

来源:每日教程每日一例,深入学习实用技术教程,关注公众号TeachCourse
转载请注明出处: https://www.teachcourse.cn/3240.html ,谢谢支持!

资源分享

分类:python 标签:, ,
Handler方法解析 Handler方法解析
如何自定义View视图控件案例开发(一) 如何自定义View视图控件案例开发
Python框架Flask开发用户登录、注册、校验功能,存储到MySQL数据库 Python框架Flask开发用户登录、
Python库tkinter将日志内容在gui界面文本输出示例 Python库tkinter将日志内容在gu

评论已关闭!