使用一个REST资源创建另一个

时间:2017-10-02 18:53:29

标签: rest restful-architecture

在购物车应用程序中,假设我有一个端点,用于/product/的端点,可以购买的产品和/cartitem/购物车中的商品。 GET /product/2 response

的示例
{
    "sku": "12345"
    "name":"mars bar"
}

GET / cartitem / 56

的示例
{
    "quantity": 4
    "sku": "12345"
    "name":"mars bar"
}

当添加一个cartitem时,我会对/ cartitem /进行POST,但不是必须放弃整个身体,我想能够发布对产品的引用

POST /cartitem

BODY:

{   
    "quantity": "4"
    "product":"/product/2"
}

而不是必须:

POST /cartitem/

{
    "quantity": 4
    "sku": "12345"
    "name":"mars bar"
}

注意,我从不想拥有:

GET
{   
    "quantity": "4"
    "product":"/product/2"
}

原因是因为有多种方法可以添加cartitem,有时你会有一个产品,有时你想要的。我希望响应不必引用产品URI,但我希望允许POST引用它以使某些客户端更容易。

可以吗?

由于

1 个答案:

答案 0 :(得分:1)

您应该使用产品的主键(ID)而不是链接。最终结果将是相同的,但它更清洁,更有意义。你只需要为此实现逻辑。