1
比方说,我有一个设备将连接到服务器,并通过API注册/传输数据。API设计;行动端点
据我所知,你会喜欢的东西:
GET: api/devices
GET: api/devices/:id
POST api/devices
DELETE: api/devices/:id
这些都是典型的CRUD端点的例子。
但是我在哪里添加端点以检查这个设备是否被允许连接到它的工厂ID?
我正在考虑总是以设备ID的形式传递一个API密钥的帖子字段,但这会混淆HTTP动词。
因此,我认为最好的办法是增加一个参数是这样的:
GET: api/devices/:id?id=something
但是,这将成为多余的与此终结点。
所以问题是,我将如何成功识别我自己的设备?
是的,基本上可以归结为此。我想我觉得它有点不同,因为我没有在寻找典型的API密钥/秘密系统,因为我自己对客户端进行编程。但是,谢谢,我会看看那些! –
@NathanPrins即使你自己设计客户,他们可能会遇到类似的模式,而其他人已经遇到过;)为这些东西重新使用现有的标准可能会给你带来更多好处,例如因为必须编写更少的代码或依赖别人的文档。 – Evert
是的,我认识到这一点,那是程序员工作的一半哈哈。但在这种情况下,大多数API要求你注册一个应用程序,你会收到一个秘密,你使用的应用程序名和密码进行身份验证。但在这种情况下,我不希望人们必须注册他们自己的设备,但我希望这些设备从“工厂”中持有某个密钥,这表明他们实际上是合法的客户,而不是第三方。这不是固定与基本,摘要等还是我错过了什么? –