2022. 11. 3. 22:13
반응형
자바에서 api를 호출할 때 이용하면 좋은게 뭐가 있는지 찾아보다가 발견했다.
Spring Boot 프로젝트를 생성하면 별도의 dependency 추가 없이 기능을 이용할 수 있었다.
다시 생각해보니 org.springframework.boot:spring-boot-starter-web 디펜던시를 추가했어야 했다.
간단하게 get, post 예제를 만들어봤다.
post 예제에는 헤더에 정보를 담아 요청을 보내도록 했는데 get 예제에서도 헤더를 담을 수 있는지 확실히 모르겠다.
api는 plos라는 사이트의 검색 기능을 이용하는 것을 발견해서 예제에 썼다.
get 예제
public void getTest() {
RestTemplate template = new RestTemplate();
String apiUrl = "https://api.plos.org/search?q=title:hope";
Map res = template.getForObject(apiUrl, Map.class);
System.out.println(res);
}
post 예제
public void postTest() {
RestTemplate template = new RestTemplate();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<>();
parameters.add("q", "title:test");
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
HttpEntity formEntity = new HttpEntity<>(parameters, headers);
String apiUrl = "https://api.plos.org/search";
Map res = template.postForObject(apiUrl, formEntity, Map.class);
System.out.println(res);
}
콘솔에 찍힌 결과의 일부를 스크린샷으로 찍어봤다.
참고로 결과를 String 형태로 얻고싶다면 Map.class 대신 String.class를 적으면 된다.
https://github.com/juragi/spring-demo/commit/e48488fc4f740677d33e2b911f97665573f95b50
반응형
'dev' 카테고리의 다른 글
[JavaScript] 소수(prime number) 찾기 (1) | 2024.11.15 |
---|---|
[JavaScript] 카카오맵 API 주소 입력하여 좌표 구하기 (0) | 2022.12.26 |
[JavaScript] input 소수 입력 (자리수 제한) (0) | 2022.10.27 |
[JavaScript] input 숫자 3자리마다 콤마(,) 넣기 (0) | 2022.10.25 |
[Java/Spring] NamedParameterJdbcTemplate 활용 DB 접근 (1) | 2022.09.22 |
[Java] 페이징 처리를 위해 간단히 만든 Pagination 클래스 (0) | 2022.09.04 |
[Java] 간단한 Spring Boot 프로젝트 생성, 실행 (0) | 2022.09.03 |
[JavaScript] HTML canvas 마우스로 그리기 (0) | 2022.06.17 |