Rest 何时知道何时应该将参数放入体内?
我在考虑我的api最符合逻辑的请求,同时试图考虑Rest 何时知道何时应该将参数放入体内?,rest,Rest,我在考虑我的api最符合逻辑的请求,同时试图考虑rest,但我不知道这三个选择中哪一个是正确的:假设我想从触发请求的某个用户向user2发送10,那么请求的最佳设计是什么 (一) (二) (三) 我不知道URL中应该包含多少信息,而URL中应该包含多少信息。我建议您看看 您希望在URL中放置规范标识符,并在正文中放置任何其他数据。 对于POST(用于创建新资源),规范标识符通常不存在,因此不需要。 然后,服务器创建一个,并在location头中将其返回给客户机 如果要更新而不是插入,则应使用PU
rest
,但我不知道这三个选择中哪一个是正确的:假设我想从触发请求的某个用户向user2
发送10
,那么请求的最佳设计是什么
(一)
(二)
(三)
我不知道URL中应该包含多少信息,而URL中应该包含多少信息。我建议您看看 您希望在URL中放置规范标识符,并在正文中放置任何其他数据。 对于POST(用于创建新资源),规范标识符通常不存在,因此不需要。 然后,服务器创建一个,并在location头中将其返回给客户机 如果要更新而不是插入,则应使用PUT或PATCH。如果用户名是您的标识符,则应使用选项2。标识符通常不可编辑
由于您“添加”了新的付款,我建议使用选项1。但我会称之为付款,也许会添加更多关于付款的信息 我建议你看看 您希望在URL中放置规范标识符,并在正文中放置任何其他数据。 对于POST(用于创建新资源),规范标识符通常不存在,因此不需要。 然后,服务器创建一个,并在location头中将其返回给客户机 如果要更新而不是插入,则应使用PUT或PATCH。如果用户名是您的标识符,则应使用选项2。标识符通常不可编辑
由于您“添加”了新的付款,我建议使用选项1。但我会称之为付款,也许会添加更多关于付款的信息 假设您有许多用户和一些用户可以执行的功能 因此,您的api可能类似于:
GET /users # get user list
POST /users + {"name": "John"} # create user
DELETE /users/{userId} # remove user
GET /users/{userId} # get user by id
GET /users/{userId}/payments # get users payments
POST /users/{userId}/payments + {"amount": 10} # submit new payment
GET /users/{userId}/payments/{paymentId} # get users payment details
正如您所看到的,这是一个非常简单的资源树。假设您有许多用户和一些用户可以执行的功能 因此,您的api可能类似于:
GET /users # get user list
POST /users + {"name": "John"} # create user
DELETE /users/{userId} # remove user
GET /users/{userId} # get user by id
GET /users/{userId}/payments # get users payments
POST /users/{userId}/payments + {"amount": 10} # submit new payment
GET /users/{userId}/payments/{paymentId} # get users payment details
正如您所见,这是一个非常简单的资源树。嗨,埃德温!谢谢你的回答,我会读的。在我深入研究之前,我想到了另一个选项,实际上,
POST/users/user2/pay | body:{“amount”:10}
?请看我的编辑。我更喜欢选项1而不是你的新选项。我提供的链接也谈到了你的URL类型,在“URL结构”下哦,是的,将其重命名为payment是有意义的,因为拥有POST/pay
就像拥有POST/create\u user
而不是POST/users
。非常感谢你!嗨,埃德温!谢谢你的回答,我会读的。在我深入研究之前,我想到了另一个选项,实际上,POST/users/user2/pay | body:{“amount”:10}
?请看我的编辑。我更喜欢选项1而不是你的新选项。我提供的链接也谈到了你的URL类型,在“URL结构”下哦,是的,将其重命名为payment是有意义的,因为拥有POST/pay
就像拥有POST/create\u user
而不是POST/users
。非常感谢你!
POST /pay/users/user2/10
GET /users # get user list
POST /users + {"name": "John"} # create user
DELETE /users/{userId} # remove user
GET /users/{userId} # get user by id
GET /users/{userId}/payments # get users payments
POST /users/{userId}/payments + {"amount": 10} # submit new payment
GET /users/{userId}/payments/{paymentId} # get users payment details