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