美文网首页
如何优雅的封装Restful接口

如何优雅的封装Restful接口

作者: 逸筱幻 | 来源:发表于2018-04-28 11:17 被阅读0次

    现在后台的接口广泛的采用了Restful风格。本文给出了一种基于装饰器的实现。简化了后台接口的编写

    主要思路
    • 定义一个装饰器。封装接口的返回值
    • 对于成功的情况,返回json数据。对于异常的情况,抛出异常。并且返回全局错误码
    接口协议

    接口返回格式为

    • code: 如果code 为200,则代表成功,其他都为失败
    • data: 对应的是接口的返回结果
    • msg: 错误编码
    下面为代码实现
    from functools import wraps
    import json
    
    def response(func):
      @wraps(func)
      def wrapper(*args, **kwargs):
        try:
          result = func(*args, **kwargs)
        except RuntimeError as info:
          return json.dumps({
            "code": 200,
            "data": None,
            "msg": info.args[0]
          })
        else:
          return json.dumps({
            "code": 100,
            "data": result,
            "msg": ""
          })
      return wrapper
    
    用例
    @response
    def demo():
      if True:#正常返回
        return {"name": "1"}
      else:#异常情况
        raise RuntimeError('100001')
    

    相关文章

      网友评论

          本文标题:如何优雅的封装Restful接口

          本文链接:https://www.haomeiwen.com/subject/fcxglftx.html