>Java >java지도 시간 >API 반환값 표준화 소개(코드 예시)

API 반환값 표준화 소개(코드 예시)

不言
不言앞으로
2019-03-08 16:26:253863검색

이 문서에서는 API 반환 값(코드 예제)의 표준화에 대해 소개합니다. 특정 참조 값이 있으므로 도움이 필요한 친구에게 도움이 되기를 바랍니다.

API 반환 값 표준화

예를 들어

{"status":200,"message":"操作成功","data":"{\"id\":1,\"name\":\"张三\"}"}

는 반환 개체를 캡슐화합니다

개체는 base.util.ResponseUtils 유형 아래에 캡슐화됩니다. 반환 값은 표준 ResponseEntity 개체입니다.
. , 주로 메시지와 데이터로 구성된 상태를 포함하며 반환 방법은 ok 및 okMessage입니다.
실제로 메시지를 반환하고 객체가 필요하지 않은 경우 okMessage를 사용하도록 선택할 수 있으며, 그렇지 않으면 ok 방법을 사용합니다.

캡슐화된 반환 객체:

  @Builder
  @Getter
  @NoArgsConstructor
  @AllArgsConstructor
  static class ResponseBody {

    private int status;
    private String message;
    private Object data;
  }

httpError 및 캡슐화된 httpError

http 오류에는 여러 유형이 있으며 기본적으로 400에서 500 사이의 코드로 설정할 수 있습니다. 예를 들어 클라이언트 매개변수 문제는 400-bad request 이고 no 인증은 401-Unauthorized, 인증은 403-Forbidden, 요청한
리소스를 찾을 수 없음, 404-Not Found, 요청 방법이 잘못됨(방법이 게시됨, get을 사용하여 요청 시작) )는 405- 허용되지 않는 메소드 등입니다.

  • 표준 http 응답 상태 코드 사용
  @GetMapping(GET_HTTP_ERROR)
  ResponseEntity<?> getHttpError() throws IOException {
    return ResponseEntity.badRequest().build();
  }
  @Test
  public void getHttpError() throws Exception {
      mockMvc
          .perform(
              get(LindDemo.GET_HTTP_ERROR)
                  .accept(MediaType.APPLICATION_JSON_UTF8))
          .andExpect(status().is(400));
  
   }

응답 결과

MockHttpServletResponse:
           Status = 400
    Error message = null
          Headers = {}
     Content type = null
             Body = 
    Forwarded URL = null
   Redirected URL = null
          Cookies = []
  • 캡슐화된 상태 상태 코드 사용
  @GetMapping(GET_ERROR)
  ResponseEntity<?> getError() throws IOException {
    return ResponseUtils.badRequest("传入的参数非法!");
  }
  
  @Test
    public void getError() throws Exception {
      mockMvc
          .perform(
              get(LindDemo.GET_ERROR)
                  .accept(MediaType.APPLICATION_JSON_UTF8))
          .andExpect(status().isOk());
  
    }

응답 결과

MockHttpServletResponse:
           Status = 200
    Error message = null
          Headers = {Content-Type=[application/json;charset=UTF-8]}
     Content type = application/json;charset=UTF-8
             Body = {"status":400,"message":"传入的参数非法!","data":{}}
    Forwarded URL = null
   Redirected URL = null
          Cookies = []

위 응답 결과에서 볼 수 있듯이 , 요청을 캡슐화했습니다. httpcode는 여전히 200이지만 요청 오류 400 상태 코드는 body
개체에 기록됩니다. 이 메서드는 현재 더 자주 사용되며 일부 타사 인터페이스에서는 이 메서드를 사용하며 해당 응답을 규정합니다. 명세서.

요약

사실 두 응답 본문 모두 문제가 없습니다. 핵심은 개발 사이의 규칙을 결정하고 프로젝트에서 둘 다 사용하지 않는 것입니다!

위 내용은 API 반환값 표준화 소개(코드 예시)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제