请求主体带有一些调用所需的可选参数,这是restful的吗

请求主体带有一些调用所需的可选参数,这是restful的吗,rest,api,restful-architecture,Rest,Api,Restful Architecture,我想为支付构建一个RESTAPI,但请求主体将具有基于支付类型的参数。我不确定某些支付类型需要可选参数,这是否是restful的。以下是端点详细信息示例 POST/clients/{id}/payments/{type} { amount: integer, card_details: { number: string, expiry: string }, bank_details: { bsb: string,

我想为支付构建一个RESTAPI,但请求主体将具有基于支付类型的参数。我不确定某些支付类型需要可选参数,这是否是restful的。以下是端点详细信息示例

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

{
    amount: integer,
    card_details: {
        number: string,
        expiry: string
    },
    bank_details: {
        bsb: string,
        account_number: string
    },
    reference: string
}
银行详细信息和卡详细信息并非总是必需的,但是如果支付类型为信用卡,则需要卡详细信息,如果类型为银行存款,则需要银行详细信息。 我觉得这种做法并不理想。是否有更好的方法来实现这一点,或者采用这种方法是否合适? 希望我已经把问题的所有细节都安排好了。我非常感谢你的建议

bank\u details
card\u details
并非始终必需,但是,如果支付类型为信用卡,则需要
card\u details
,如果类型为银行存款,则需要
bank\u details


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

感谢您的快速响应。这很有帮助:)