我正在使用自定义REST服务开发Web应用程序。对于用户注册,我需要用户提供出生日期。出生日期有一个最小值和最大值,这是API所知。
表单的出生日期包括3个选择框,日,月,年,并且具有前端验证,这将验证输入的日期(并确保日期存在等)。
我不想在前端硬编码最小/最大年龄的业务规则,因为这意味着它维护在两个不同的位置。但是,我现在没有提供此信息的API(作为资源等),我也不确定这是否是为API添加的逻辑。
如何从REST API正确检索此业务规则信息?
修改 此外,由于我需要在年份选择框中生成值,我需要知道有效年份。这使得它很像任何价值集(即可用的用户名称(先生,夫人),实际上是我从API获得的资源)。考虑到这一点,它听起来像一个出生日期值集,理论上可以是所有有效日期(这将是疯狂的)或有效范围的列表。
答案 0 :(得分:1)
在我的公司,我们有一个名为/ environment /的路径。也许这可能是一个放置它的地方?或/ user / environment /?
当然这是你自己的决定。我没有看到任何实践,因此我认为该解决方案不会对API的RESTful性造成太大影响。
答案 1 :(得分:1)
我认为这是一个问题,你不想用业务规则资源污染你的API。
实际上我认为它属于documentation
域,因为它是某种元信息。
如果我想构建一个使用您的API的客户端,我是否应该在客户端验证输入是否应该由我决定。
然而,如果我尝试使用无效输入注册它是错误的,那么获取信息会非常好。
但是要回答你的问题,要么你做@Piddien建议,要么我认为WADL可能有一些支持提供有效的输入。但据我所知它并没有被广泛使用(我在这里可能会非常错误)。