6-自定义code和msg

475 阅读2分钟

回顾

还记得我们之前编写了一个register接口吗?可那只是个空壳,直接返回了注册成功的响应体。

接下来我们要做的事情是规范接口,大家可能经常在服务中见到这种的接口返回:

{ "code": 200, "msg": "xxxxx", "data": { } } 所以,我们尽可能的贴近规范。顺便一提,有大佬有更好的设计方案,可以在帖子中评论,带带弟弟也好,感激不尽!

好处

规范接口的好处有以下几点:

  1. 提高开发效率:规范的接口定义可以让开发人员更加清楚地了解接口的功能、输入、输出等信息,避免了重复的沟通和误解,提高了开发效率。
  2. 降低维护成本:规范的接口定义可以让后续的开发人员更加容易理解和修改接口的实现,降低了维护成本。
  3. 提高代码质量:规范的接口定义可以让开发人员更加容易编写出高质量、可维护的代码,并且可以通过接口文档来进行代码审查和测试。
  4. 提高系统稳定性:规范的接口定义可以让系统的各个组件之间更加清晰地交互,避免了不必要的错误和异常情况,提高了系统的稳定性。
  5. 提高可扩展性:规范的接口定义可以让系统更加容易进行功能扩展和模块化设计,提高了系统的可扩展性和灵活性。

设计

在我的想法中,我准备建立两个常量文件,一个用来收集管理code码,一个用来管理msg描述信息,在接口返回的时候,只需要灵活加上code和msg,即可。至于为什么给code和msg拆分成两个常量文件,原因是我觉得分的细一点可能更容易管理。

编码

新增文件abandon-server/src/app/custom/custom_code.pyabandon-server/src/app/custom/custom_msg.py,分别在文件中创建一个自定义code类和一个自定义msg类。

class CustomCode:  
    TESTCODE: int = 100
class CustomMessage:  
    TESTMESSAGE: str = '这是一个测试msg'

编写完成后,我们在/auth/register接口中编辑一下引入我们配置的常量信息。

from fastapi import APIRouter  
  
from src.app.custom.custom_msg import CustomMessage  
from src.app.custom.custom_code import CustomCode  
  
router = APIRouter(prefix="/auth")  
  
  
# router注册的函数都会自带/auth,所以url是/auth/register  
@router.post("/register")  
async def register():  
    data: dict = {"token": "xxxxx", "user": {}}  
    return dict({"code": CustomCode.TESTCODE, "msg": CustomMessage.TESTMESSAGE, "data": data})  
  
  
@router.post("/login")  
async def login():  
    return "登陆成功"

验证

使用Postman请求127.0.0.1:9923/auth/register地址查看返回即可。

image.png