ApiResponse.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using System.Text.Json.Serialization;
  2. namespace CallCenter.Share
  3. {
  4. public record ApiResponse
  5. {
  6. public ApiResponse()
  7. {
  8. }
  9. public ApiResponse(int code, string message, string error)
  10. {
  11. Code = code;
  12. Message = message;
  13. Error = error;
  14. }
  15. /// <summary>
  16. /// 响应码
  17. /// </summary>
  18. public int Code { get; set; }
  19. public string? Message { get; set; }
  20. public string? Error { get; set; }
  21. /// <summary>
  22. /// 请求成功
  23. /// </summary>
  24. [JsonIgnore]
  25. public bool IsSuccess => Code == 0;
  26. public static ApiResponse Success() => new();
  27. public static ApiResponse Fail(int? code, string? message = default, string? error = default) => new(code ?? 1, message, error);
  28. }
  29. public record ApiResponse<TContent> : ApiResponse
  30. {
  31. /// <summary>
  32. /// 返回值
  33. /// </summary>
  34. public TContent Content { get; set; }
  35. public static ApiResponse Success(TContent content)
  36. => new ApiResponse<TContent> { Content = content };
  37. }
  38. }