为API添加标准的Json Response

问题描述

如何遵循标准的JSON API响应格式?我的回应是显示所有正在删除的卡数据。如果付款已成功删除,我想输出一个成功;如果删除一个错误,我想输出一个错误

我需要创建一个单独的成功和错误模型吗?

我的控制器

[HttpDelete]
[ProducesResponseType(typeof(FluentValidation.Results.ValidationResult),400)]
public async Task<IActionResult> DeletePaymentMethod(string paymentID)
{
    var userId = User.Claims.FirstOrDefault(x => x.Type == "UserID").Value;
    var result = new VersionResponse()
        {
            Data = await _paymentService.DeletePaymentMethod(paymentID,userId)
        };
    return Ok(result);
}

我的VersionResponse

public class VersionResponse
{
    public dynamic Data { get; set; }
}

成功预期的响应:

{
  data : {
    success : true
  }
}

出现错误时的预期响应:

{
  error : {
    message : "Payment method does not exist",// string,user friendly message
    }
} 

当前响应:

如果那里只有一种付款方式并且被删除了,那么这就是响应:

{
    "data": {
        "data": []
    }
}

否则,如果我们还有多种付款方式,那么响应如下:

 "data": {
        "data": [
            {
                "id": "pm_1HEllWCCQ3Wtmj18t8Dm08WD","object": "payment_method","billingDetails": {
                    "address": {
                        "city": null,"country": null,"line1": null,"line2": null,"postalCode": null,"state": null,"stripeResponse": null
                    },"email": null,"name": null,"phone": null,"stripeResponse": null
                },"card": {
                    "brand": "mastercard","checks": {
                        "addressLine1Check": null,"addresspostalCodeCheck": null,"cvcCheck": "pass","country": "US","expMonth": 8,"expYear": 2022,"fingerprint": "J2v2Z5D0AXU9RZRW","funding": "credit","last4": "4444","threeDSecureUsage": {
                        "supported": true,"wallet": null,"cardPresent": null,"created": "2020-08-11T00:54:59Z","customerId": "cus_HT43dM2M6dWiDT","customer": null,"fpx": null,"ideal": null,"livemode": false,"Metadata": {},"sepaDebit": null,"type": "card","stripeResponse": null
            }
        ]
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)