我正在设计一个RESTful网站所有权验证API,我想以惯用的方式进行。
目前,用户POST
是一个验证请求。服务器通过创建验证资源来响应,该验证资源包含嵌入随机令牌的URL。然后,用户应该将令牌URL添加到他们的站点,验证他们确实控制了站点。然后我的服务器检查其网站上是否存在该URL。
对POST
的回复可能如下所示:
{
"id": 21,
"link": "http://mydomain.com/api/v0/verifications/21/",
"created": "2014-05-06T22:11:44.086Z",
"domain_name": "http://theusersdomain.com",
"verified": false,
"token": "34jfdusdcflkanmlkdfjnsakdfhmv",
"token_url": "http://theusersdomain.com/mydomain-34jfdusdcflkanmlkdfjnsakdfhmv"
}
我遇到问题的部分是用户应该如何告诉服务器他们更新了他们的网站,并且服务器应该检查是否存在令牌URL。我考虑过使用空的PUT
/ PATCH
请求。然而,这似乎有点像黑客,因为用户并没有真正更新资源,而是触发副作用。
我想到的另一种可能性是让用户更新状态为verified
的{{1}}字段。然而,这似乎也很尴尬。看到他们的更新不是改变该领域的价值,而是副作用。
我遇到的主要问题不是实施问题,而是找出如何以惯用的方式做到这一点。
那么使用REST API进行这样两部分验证的惯用方法是什么?