我刚刚开始使用 Apiary,我不知道这是产品的限制,还是我不知道该怎么做。
我正在记录一个 API,它将用户身份验证为每个请求的一部分。有时身份验证是路径的一部分(对用户配置文件的请求将在路径中包含用户 ID),其他时候只是作为参数 (?user_id=1&auth=secret),对于 POST 请求,作为传入正文的一部分JSON。
此外,应用程序中有 3 种身份验证方法。您可以使用 Facebook UID、电子邮件地址或使用您正在使用的设备的唯一 ID 登录。结果是这样的:
##User [/user/{facebook_uid}{?access_token}, /user/{email}{?device_id}, /users/{device_auth_id}{?device_id}]
这工作正常,并按我的预期显示在 API 中:
但这引入了两个问题:
1)如果我想添加一组所有身份验证方法共享的参数,我需要将它添加到所有 3 中,如下所示:
## User [/user/{facebook_uid}{?access_token, extra_thing, this_too},
/user/{email}{?device_id, extra_thing, this_too},
/users/{device_auth_id}{?device_id, extra_thing, this_too}]
这似乎有点乱,在路径数组的末尾应用共享参数会更好,这样它们就适用于所有人,如下所示:
## User [/user/{facebook_uid}{?access_token}, /user/{email}{?device_id}, /users/{device_auth_id}{?device_id}]{&extra_thing, this_too}
但这不起作用。有没有办法做到这一点?该文档对于像这样更复杂的东西不是很有帮助。
另外,是否有一种方法可以创建某种可以应用于所有方法的模板?在身份验证是路径的一部分的情况下,它有点不可避免,但对于其他请求,只需执行类似的操作include: authentication
并让它从某个定义的模板中提取 unique_id/auth 组合会很好。
谢谢!