代码之家  ›  专栏  ›  技术社区  ›  Rohith Mohan

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

  •  1
  • Rohith Mohan  · 技术社区  · 7 年前

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

    POST/客户/{id}/付款/{type}

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

    不需要始终提供bank\u details和card\u details,但如果支付类型为信用卡,则需要提供卡详细信息,如果类型为银行存款,则需要提供银行详细信息。 我觉得这种方法并不理想。是否有更好的方法来实现这一点,或者使用这种方法是否合适? 希望我已经把问题的所有细节都安排好了。我非常感谢你的建议。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Community CDub    4 年前

    这个 bank_details card_details 并非始终需要,但如果支付类型为信用卡,则需要 card\u详细信息 如果类型为银行存款,则 bank\u详细信息 是必需的。

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