我正在设计新的REST API端点,并对API网址有疑问。
例如,我有一个Product
实体和相应的/products
API。
为了获得特定产品,一切都很清楚 - 我必须使用类似的东西:
GET /products/{productId}
为了创造新的一切,一切都很清楚:
POST /products with a product details in the HTTP request body
但如何处理产品更新?
我现在可以看到两个选项:
PUT /products/{productId} with a new product details in the HTTP request body
或
PUT /products with a {productId} and new product details in the HTTP request body
产品删除的相同问题。
此处将{productId}
发送到服务器的最佳做法是什么?
答案 0 :(得分:1)
您应该使用 PUT / products / {id} 来更新产品。 在正文中,您应该发送资源或更改。
PUT方法请求将所包含的实体存储在 提供了Request-URI。如果Request-URI引用已存在的URI 资源,封闭的实体应该被视为修改过的 驻留在原始服务器上的版本。