Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rest 何时知道何时应该将参数放入体内?_Rest - Fatal编程技术网

Rest 何时知道何时应该将参数放入体内?

Rest 何时知道何时应该将参数放入体内?,rest,Rest,我在考虑我的api最符合逻辑的请求,同时试图考虑rest,但我不知道这三个选择中哪一个是正确的:假设我想从触发请求的某个用户向user2发送10,那么请求的最佳设计是什么 (一) (二) (三) 我不知道URL中应该包含多少信息,而URL中应该包含多少信息。我建议您看看 您希望在URL中放置规范标识符,并在正文中放置任何其他数据。 对于POST(用于创建新资源),规范标识符通常不存在,因此不需要。 然后,服务器创建一个,并在location头中将其返回给客户机 如果要更新而不是插入,则应使用PU

我在考虑我的api最符合逻辑的请求,同时试图考虑
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