3 回答
TA贡献1831条经验 获得超4个赞
/users/{loginid}/properties/{propertyid} - 请考虑这个端点,因为它更符合 RESTful
对于 PUT 更新,您可以考虑上面的端点,userloginid并propertyid从路径变量中获取和。
在 PUT 请求中,PUT /users/3333/properties/1我将发送以下请求正文:
{
"propertyname": "My edited property name"
}
对于创建新属性的 POST 请求,我会考虑/users/{loginid}/properties/使用相同的请求正文结构向此 URL 发送请求:
{
"propertyname": "My new property name"
}
正如您所看到的,我没有在 POST 请求中发送任何 ID,因为存储对象的 ID 生成应该发生在 DAO 中。
客户端将在响应正文中收到创建/更新属性的 ID:
{
"propertyname": "My updated/created property name",
"propertyid": "1"
}
因此,从上面的示例中,我将创建两个 DTO 来处理输出和输入情况。
TA贡献1830条经验 获得超3个赞
您应该使用这三个属性(userloginid、propertyname、propertyid)创建相同的 DTO 。但是您必须考虑到propertyid可以为null。然后在发送请求参数时,如果没有发送propertyid,解析器会创建一个propertyid=null的DTO实例;否则解析器将创建一个带有propertyid=value_passed_in 参数的 DTO 实例。
添加回答
举报