我正在使用gorilla routing 在golang中编写 Web 服务。面临可选url参数的问题。任务是一路接受请求并向数据库发出请求(使用GORM)。我不知道如何正确解析这些参数,因为对db的最终调用将取决于这些参数,并且某些参数可能不可用,顺便说一下,参数是对db的限制。我立即为这个愚蠢的问题道歉。/{entity}/{id:}/{location}?params=...
我正在使用gorilla routing 在golang中编写 Web 服务。面临可选url参数的问题。任务是一路接受请求并向数据库发出请求(使用GORM)。我不知道如何正确解析这些参数,因为对db的最终调用将取决于这些参数,并且某些参数可能不可用,顺便说一下,参数是对db的限制。我立即为这个愚蠢的问题道歉。/{entity}/{id:}/{location}?params=...
作为选项之一,您可以使这些可选参数具有引用性,如果为 nil,则它们不是。
假设您有一个限制输出的 Limit 参数。那么在你的结构中,反序列化将是这样的:
在您的处理程序中,您可以检查参数是否存在,如果没有,则设置默认值,或将其传递给从数据库中提取的方法。
假设您有一个方法来检索所有用户 GetUsers,该方法采用可选参数
所有可选参数都可以通过这种方式传递给数据库层,但不要忘记检查它们的有效性。您可以拒绝指针并传递默认值,之前已通过您的验证器运行它。