Python中如何设计和选择RESTful API架构?
首先 client 认证获取到 token 带着 token 访问接口
现在有这样的一个接口,查看用户的基本信息
/user/info 默认不传参是查看自己的, 自己的 uid 是加密到 token 里面的,他看不到自己的 uid.
/user/info?uid=xxx 要查看其他用户的信息,就必须传 uid 查询参数了。
如果为了清晰统一 使用 /user/info/xxx 这样层级方式, 那必须要把当前用户自己的 uid 返回去了,这样做合适吗?
Python中如何设计和选择RESTful API架构?
restful 应该是这样吧:/user/xxx/info
/user/info 就是自己的
/user/xxx/info 就是别人的
核心就两点:设计规范和框架选择。
设计规范遵循REST原则,用HTTP方法对应CRUD操作(GET查/POST增/PUT改/DELETE删),资源用名词复数URL(如/api/users),状态码要准确(200成功/404找不到),版本号放URL或请求头。
框架选择看需求:
- 轻量快速上手:用Flask + Flask-RESTful,几行代码就能跑起来。
- 企业级/功能全:用Django REST framework(DRF),自带认证、序列化、文档生成,省心但重。
- 高性能异步:选FastAPI,自动生成OpenAPI文档,类型提示爽,适合现代异步应用。
简单建议:小项目Flask,大项目DRF,追求性能和类型用FastAPI。
查看自己 /myself 查看他人 /users/id/info
这么做,得写 2 个 view function 了吧。
是的,这么写是两个入口
我觉得如果返回的内容一样,就用一样的形式
都用 /user/id/info 就好
一致性原则,要么都隐藏在 token 里,要么都显示出来。看不到自己的 UID,别人的 UID 就能看到,这个逻辑要来干什么大事吗。。。
我是这样设计的:
自己的信息:<br>GET /profile<br>
单个用户信息:<br>GET /users/:id<br>
应该统一 /user/{uId}/info,是不是自己由后面取 token 做判断,貌似好多站都是这样的。


