我想为付款构建一个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不是一直需要的,但如果付款方式是信用卡,则需要信用卡详细信息,如果类型是银行存款,则需要提供银行详细信息。 我觉得这种做法并不理想。是否有更好的方法来实现这一点,或者采用这种方法是否合适? 希望我已经用所需的所有细节构建了问题。我非常感谢你的建议。
答案 0 :(得分:1)
bank_details
和card_details
并非始终要求,但如果付款类型为信用卡则需要card_details
,如果类型为银行存款,则{{1} } 是必要的。
据我了解,您的应用程序允许客户端使用不同的表示创建不同的资源。那很好。根据{{3}},RFC 7231方法请求目标资源根据资源自身的特定语义处理请求中包含的表示。