首页 > 解决方案 > REST API URL 变量命名

问题描述

我想让人们通过不同的变量检索资源。例如,我想让他们通过电子邮件或 ID 搜索用户。

目前我正在使用:

https://my-api.com/get-user-by-email?email=xxx@yyy.com

https://my-api.com/get-user-by-id?id=xxx

这是一个好习惯吗?如果答案是否定的,我应该如何重命名此 URL 并提供验证,以便它只接受电子邮件和 ID?

标签: restflask

解决方案


以这种方式命名您的资源不是一个好习惯。基本上,您威胁users作为可以通过电子邮件过滤的资源集合,并通过唯一标识符 ( id) 检索单个资源,因此 url 模式如下

通过电子邮件搜索

https://myco.api/users?email=xx@yy.com

按 ID 检索

https://myco.api/users/{id}

至于验证,这是实现,而不是接口问题,flask-restful 文档应该提供一些见解


推荐阅读