让请求体具有某些调用所需的可选参数是否安静?

时间:2018-04-23 07:31:36

标签: rest api restful-architecture

我想为付款构建一个rest api,但请求正文将根据付款类型设置参数。我不确定某些支付类型是否需要可选参数是否安宁。以下是示例端点详细信息

POST / clients / {id} / payments / {type}

{
    amount: integer,
    card_details: {
        number: string,
        expiry: string
    },
    bank_details: {
        bsb: string,
        account_number: string
    },
    reference: string
}

bank_details和card_details不是一直需要的,但如果付款方式是信用卡,则需要信用卡详细信息,如果类型是银行存款,则需要提供银行详细信息。 我觉得这种做法并不理想。是否有更好的方法来实现这一点,或者采用这种方法是否合适? 希望我已经用所需的所有细节构建了问题。我非常感谢你的建议。

1 个答案:

答案 0 :(得分:1)

  

bank_detailscard_details并非始终要求,但如果付款类型为信用卡则需要card_details,如果类型为银行存款,则{{1} } 是必要的。

据我了解,您的应用程序允许客户端使用不同的表示创建不同的资源。那很好。根据{{​​3}},RFC 7231方法请求目标资源根据资源自身的特定语义处理请求中包含的表示。