我很好奇我需要使用API端点结构和HTTP方法来成功验证电话号码。根据REST API准则,我需要使用哪种正确格式?每个API还应返回什么响应?
我正在尝试更新电话号码。这是我尝试过的:
API 1-POST / verification-创建验证实体并发送验证码
输入:phone_number: '+19876543210'
响应:
{id: 'verification_id', status: 'enum[pending, completed]'}
API2-POST / verification / {verification_id} / verify
输入:code: '123456'
响应:
{id: 'verification_id', status: 'enum[pending, completed]'}
API3-PATCH /帐户/:id /个人资料-替换当前电话号码
输入:{id: 'current_phone_id', number: 'new_number', verification_id: 'verification_id'}
响应:
Updated Profile object
嗯,这很大程度上是基于意见的。但是,根据您的建议,我可能会这样做。
1。 -POST /帐户/ {帐户} /电话添加新电话号码(未经验证,发送短信)
您应将资源端点命名为复数形式,通常这是最佳的做法。正如@ sp00n已经指出的那样,verification
有点过于笼统,您可以在此处包括电话。
此端点也应以HTTP 202 Accepted
作为响应,因为资源仅部分准备就绪(正在等待短信)。或者至少使用201 Created
,因为已经创建了新资源。
2。 -PATCH /帐户/ {帐户} /电话/ {电话}验证电话号码
使用POST /verification/{verification_id}/verify
听起来更像是rpc呼叫。在静态API中,您通常可以通过修改资源来更改其状态。
3。 -PATCH /帐户/ {帐户}-替换主要电话号码
输入:{id: 'user_id', primary_phone: 'phone_number'}
。
这种方式,电话是帐户的子资源,无需在更改主要电话号码后将其删除。