http 인터페이스 개발 및 호출 사례
6652 단어 [아키텍처 설계]
@Path("/***")
@Produces(MediaType.APPLICATION_JSON)
public class ***Resource {
@GET
public ApiResponse list(@QueryParam("***") String ***, @DefaultValue("1") @QueryParam("***") int ***) {
List *** = new ArrayList<>();
......
return ApiResponseBuilder.ok().entity(***).build();
}
}
list 메서드는 데이터 형식을 ApiResponse 엔티티로 되돌려주고 @Produces(MediaType.APPLICATION_JSON) 메모를 통해 엔티티를 json으로 되돌려줍니다. ApiResponse 엔티티의 내용은 다음과 같습니다.
public class ApiResponse {
public static final Object EMPTY = "";
private int status;
private String message;
private Object entity = EMPTY;
/**
*
*/
public static class ApiResponseBuilder{
private ApiResponse apiResponse;
public ApiResponseBuilder(ApiResponse resp){
this.apiResponse = resp;
}
public static ApiResponseBuilder ok(){
return status(HttpServletResponse.SC_OK).msg("ok");
}
public static ApiResponseBuilder status(int status){
ApiResponse resp = new ApiResponse();
resp.setStatus(status);
return new ApiResponseBuilder(resp);
}
public ApiResponseBuilder msg(String msg){
this.apiResponse.setMessage(msg);
return this;
}
public ApiResponseBuilder entity(Object entity){
this.apiResponse.setEntity(entity);
return this;
}
public ApiResponse build(){
return apiResponse;
}
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public Object getEntity() {
return entity;
}
public void setEntity(Object entity) {
this.entity = entity;
}
}
이 인터페이스 개발 작업이 끝난 후에springboot의main 방법을 실행하면 전체 서비스가 달려갑니다.인터페이스가 고가용 배치를 어떻게 지원하는지에 대해 고가용api인터페이스 네트워크 배치 방안을 참고하여 인터페이스 호출자에 대해 응용 프로그램이 필요합니다.properties는 인터페이스에서 호출되는 URL 주소, 코드 레벨을 설정합니다. 우리는 org를 통해 호출합니다.springframework.web.client.RestTemplate는 다음과 같은 방식으로 인터페이스 호출을 시작합니다.
@Value(value = "${url}")
private String url;
RestTemplate temp = new RestTemplate();
String json = temp.getForObject(url, String.class, "***");
JsonNode root = ***.getJsonNode(json);
Entity entity = ***.getEntityFromJsonNode(root);
상기 방식의 인터페이스 개발과 호출을 사용하면 개발자와 호출자는 모두 인터페이스 규범에 의존한다. 이렇게 하면 인터페이스 개발자와 호출자의 결합 관계를 어느 정도 줄일 수 있고springboot 마이크로서비스 구조를 사용하면 인터페이스를 편리하게 배치하고 집단을 사용할 수 있다.나의 공유가 당신의 진보에 도움이 되기를 바랍니다.