728x90
각 시스템 간에 인터페이스 를 Rest API를 호출하여 사용하기로 결정을 하여 JAVA 버젼과 C#에 대하여 테스트를 진행중에 있다.
Restful API 호출하는 부분에 대하여 아래 사이트를 참고 하였습니다.
docs.agora.io/en/All/faq/restful_authentication
우선 아래 스웨거로 일단 초기 테스트를 먼저 해봅니다.
보통의 경우 url에 파라미터를 추가하여 호출하는 경우로 확인가능
이제 자바소스에서 이 서비스를 호출하는 예제 테스트 합니다.
public static String sendREST(String sendUrl, String jsonValue) throws IllegalStateException {
String inputLine = null;
StringBuffer outResult = new StringBuffer();
try {
System.out.println("REST API Start");
URL url = new URL(sendUrl);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Accept-Charset", "UTF-8");
conn.setConnectTimeout(10000);
conn.setReadTimeout(10000);
/****** 인증이 있는경우
String id_pass = "id:password";
String base64Credentials = new String(Base64.getEncoder().encode(id_pass.getBytes()));
conn.setRequestProperty("Authorization", "Basic " + base64Credentials);
*/
OutputStream os = conn.getOutputStream();
os.write(jsonValue.getBytes("UTF-8"));
os.flush();
// 리턴된 결과 읽기
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
while ((inputLine = in.readLine()) != null) {
outResult.append(inputLine);
}
conn.disconnect();
System.out.println("REST API End");
}catch(Exception e) {
e.printStackTrace();
}
return outResult.toString();
}
Case1 : 파라미터 호출인 경우 간단하게 처리하면 됨.
String msgMap = sendREST("http://localhost:8080/api/hello?name=12", null);
Case2 : 데이터를 json 형식으로 전달해야 하는 경우
HashMap<String, Object> resultMap = new HashMap();
resultMap.put("key", "data");
ObjectMapper mapper = new ObjectMapper();
try {
String json = mapper.writeValueAsString(resultMap);
String msgMap = sendREST("http://localhost:8080/api/hello", json);
System.out.println(msgMap);
}catch(Exception e) {
e.printStackTrace();
}
728x90