【发布时间】:2018-12-21 15:56:53
【问题描述】:
在 postgres 中我创建了一个表:
create table examples(id uuid PRIMARY KEY DEFAULT uuid_generate_v4(),
name VARCHAR);
为了从表示例中获取我的所有值,我在我的框架处理程序中创建了一个端点:
GET "/examples[/]?"
如果我使用 SERIAL 或 INT 类型作为我的主键,我的单个示例值的端点将如下所示:
GET "/examples/([0-9]+)*"
但我使用 UUID 作为主键,我创建了这个怪物:P
GET "/examples/([0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[0-9a-f][0-9a-f]{3}-[0-9a-f]{12})"
使用示例:
examples/ef935fbc-8c43-4b22-b160-14124a29312e
examples/{uuid}
它适用于我的情况,但可能有更好的方法吗? 是否有任何好的指导方针来说明如何处理此类问题?
【问题讨论】:
-
我们这里是在讨论验证吗?如果不是,只需告诉您的用户这是一个字符串?我看不出问题出在哪里。
-
是的,我应该在方法中输入的 uuid 到达数据库之前以某种方式检查它,还是我创建的正则表达式足够?