springboot feign 접근 api 사용 하기
12048 단어 springboot
fein
Feign 은 자바 HTTP 클 라 이언 트 의 작성 을 더욱 편리 하 게 합 니 다.Feign 영감 은 Retrofit,JAXRS-2.0,WebSocket 에서 나온다.Feign 은 처음에 통일 묶음 을 낮 추기 위해 서 였 어 요.
Denominator 에서 HTTP API 까지 의 복잡 도 를 정 하고 Restful 지원 여 부 를 구분 하지 않 습 니 다.Feign 은 최소한 의 자원 과 코드 를 통 해 HTTP API 와 의 연결 을 실현 하 는 데 목적 을 둡 니 다.통과 가능
맞 춤 형 디코더 와 오류 처리,임의의 HTTP API 를 작성 할 수 있 습 니 다.
github:https://github.com/OpenFeign/feign
2.feign 사용 절차
1.pom 의존 증가
io.github.openfeign
feign-core
9.5.0
io.github.openfeign
feign-slf4j
9.5.0
io.github.openfeign
feign-hystrix
9.5.0
io.github.openfeign
feign-jackson
9.5.0
2,application.properties 기초 url 증가
application.cnode.url=https://cnodejs.org
3.api 에 접근 하 는 인 터 페 이 스 를 작성 합 니 다.
@Headers("Content-Type:application/json")
public interface NodeClient {
@RequestLine("GET /api/v1/topics?page={page}&tab={tab}&limit={limit}&mdrender={mdrender}")
CnodeTopicsResponse getTopics(@Param("page") int page,@Param("tab") String tab,
@Param("limit")int limit,@Param("mdrender") String mdrender);
}
4.주 해 를 사용 하여 NodeClient 를 설정 하고 응답 대기 시간 을 설정 합 니 다.
@Configuration
public class NodeConfig {
@Value("${application.cnode.url}")
private String baseUrl;
@Bean
NodeClient nodeClient() throws InterruptedException {
return HystrixFeign.builder()
.decoder(new JacksonDecoder())
.encoder(new JacksonEncoder())
.setterFactory((target, method) ->
new SetterFactory.Default().create(target, method).
andCommandPropertiesDefaults(HystrixCommandProperties.defaultSetter().
withExecutionTimeoutInMilliseconds(10000)))
.target(NodeClient.class, this.baseUrl);
}
}
5.컨트롤 러 설정
@RestController
@CrossOrigin
public class NodeController {
private NodeClient nodeClient;
@Autowired
public NodeController(final NodeClient nodeClient) {
this.nodeClient = nodeClient;
}
@RequestMapping(value = "/node",method = RequestMethod.GET)
public CnodeTopicsResponse get(CnodeTopicsRequest cnodeTopicsRequest){
return nodeClient.getTopics(cnodeTopicsRequest.getPage(),
cnodeTopicsRequest.getTab(),
cnodeTopicsRequest.getLimit(),
cnodeTopicsRequest.getMdrender());
}
}
6.그 중에서 Cnode Topics Request 와 Cnode Topics Response 는 다음 과 같다.
public class CnodeTopicsRequest {
private Integer page;
private String tab;
private Integer limit;
private String mdrender;
public Integer getPage() {
return page;
}
public void setPage(Integer page) {
this.page = page;
}
public Integer getLimit() {
return limit;
}
public void setLimit(Integer limit) {
this.limit = limit;
}
public String getTab() {
return tab;
}
public void setTab(String tab) {
this.tab = tab;
}
public String getMdrender() {
return mdrender;
}
public void setMdrender(String mdrender) {
this.mdrender = mdrender;
}
}
public class CnodeTopicsResponse {
private boolean success;
private List data;
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public List getData() {
return data;
}
public void setData(List data) {
this.data = data;
}
}
6.그리고 응용 프로그램 을 시작 하고 링크 에 접근 합 니 다.
http://localhost:8080/node?page=1&limit=100&tab=&mdrender=false
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin Springboot -- 파트 14 사용 사례 REST로 전환하여 POST로 JSON으로 전환前回 前回 前回 記事 の は は で で で で で で を 使っ 使っ 使っ て て て て て リクエスト を を 受け取り 、 reqeustbody で 、 その リクエスト の ボディ ボディ を を 受け取り 、 関数 内部 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.