【问题标题】:How to pass enum in Sprinboot backend using api call?如何使用 api 调用在 Spring Boot 后端传递枚举?
【发布时间】:2021-02-25 10:28:39
【问题描述】:

我对 java spring boot 完全陌生,我正在尝试同时研究和开发一个应用程序。我需要做的是在后端获取枚举作为 api 调用到 UI。我想不出怎么做。你能告诉我如何通过 api 调用传递它们吗?

TicketStatusVO.java

package limark.internal.css.api.v1.model.enums;

import java.lang.reflect.Array;

public enum TicketStatusVO {
    UNASSIGNED,
    ASSIGNED,
    IN_PROGRESS,
    BLOCKED,
    RESERVED,
    ARCHIVED;
}

Resource.java

 /**
   * API to get all enums
   * @return list of enums
   */
  @GetMapping("/getEnums")
  public TicketStatusVO getEnums() {

//TODO
    return null;
  }

【问题讨论】:

  • 返回一个数组并执行return TicketStatusVO.values()

标签: java spring spring-boot api enums


【解决方案1】:

你可以用这个:

@GetMapping("/getEnums")
public TicketStatusVO[] getEnums() {
   return TicketStatusVO.values();
}

【讨论】:

    【解决方案2】:

    正如@m-deinum 所说,您可以返回 TicketStatusVO 数组。

      public enum TicketStatusVO {
        UNASSIGNED,
        ASSIGNED,
        IN_PROGRESS,
        BLOCKED,
        RESERVED,
        ARCHIVED;
      }
    
      @GetMapping("/getEnums")
      public TicketStatusVO[] getEnums() {
        return TicketStatusVO.values();
      }
    

    此外,您应该为 Rest API 定义一些好的名称来证明返回值的正确性。例如:

      @GetMapping("/ticketStatus")
      public TicketStatusVO[] getTicketStatus() {
        return TicketStatusVO.values();
      }
    

    【讨论】:

      【解决方案3】:
      @GetMapping("/getEnums")
      public TicketStatusVO[] getEnums() {
          return TicketStatusVO.values();
      }
      

      在上面尝试使用数组或转换为如下所示的列表

      @GetMapping("/getEnums")
      public List<TicketStatusVO> getEnums() {
          return Arrays.asList(TicketStatusVO.values());
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-11-05
        • 1970-01-01
        • 1970-01-01
        • 2021-06-19
        • 2014-07-31
        • 2020-11-15
        • 1970-01-01
        相关资源
        最近更新 更多