betterthani / saveWallet

0 stars 0 forks source link

환율 api 가져오기 (controller, ajax) #2

Open betterthani opened 1 year ago

betterthani commented 1 year ago

외부 API가져오기를 해본적이 없어서 난제다...

서버 투 서버로 진행할 예정이며, 내일까지 완료가 목표이다!

betterthani commented 1 year ago

주말의 경우 그 주 금요일 데이터를 갖고와야 하는 점 참고해야한다.

betterthani commented 1 year ago

날짜를 Integer 형으로 받아서 토요일일 경우 -1 , 일요일일경우 -2 를 하여 계산하였는데 이는 20230201일 현재 토요일이라 가정, -1을하게 되면 20230200일이 된다. 그러므로, String형으로 다시 변환하여 해당 주의 금요일의 자료로 받아올것으로 변경해봐야겠다.

betterthani commented 1 year ago

실시간 현재 시간을 반영하여 하여, Date객체로 날짜를 받아왔고, json simple jar를 통해 json을 파싱하였다. 파싱 받은 객체를 배열로 추출하여 필요한 데이터(통화, 매매기준율)을 뽑아왔다.

betterthani commented 1 year ago
  1. 현재일 기준으로 controller에서 처리하여 받아오는 api는 성공하였다.
  2. 현재일 기준이 아닌 datepicker로 날짜를 선택하여 api를 ajax로 호출 하고싶다.

여기서 현재 문제점은 datepicker의 값이 onchange됐을 때 가져와야하는건데...

그 값을 가져오려면

$('#datepicker").on('change',function(){
 let day = $(this).val();
});

로 해서 갖고와야하는데 api를 가져오려는 ajax통신 부분에서 해당 변수를 가져올 수 없게 된다..

내가 지금 찾아야하는 것은 1. ajax통신으로 api가져오기 2. datepicker값 변수로 선언하여 오늘 날짜 가져오기

날짜 가져오는 이유는 JSON값을 가져오려면 필요하다.

betterthani commented 1 year ago

$( "#datepicker1" ).datepicker( "getDate" ); //현재 선택되어 있는 날짜 가져오기 (Date 형으로 반환)

betterthani commented 1 year ago

스크립트에서 api가져오는거 성공하였다.

문제점 1: 환율 json가져올때마다, XMLHttpRequest ~ No 'Access-Control-Allow-Origin' 이라는 메세지가 뜨면서 데이터 자체가 불러와지지 않음.

해결법 : 이 문제는 크롬에서 보안문제로 거른것이다. 가장 간단한 방법은 크롬 확장자프로그램을 설치하여 'Allow CORS: Access-Control-Allow-Origin'를 사용해주면 되어, json을 불러왔고. 리스트,딕셔너리s구조로 반복문을 통하여 배열로 빼내었다.

문제점 2: datepicker값 변수로 선언하여 가져오는거였다.

해결법 : input에 onchange값도 넣어보고 다 해봤지만 역시나 처음에 생각했었던게 답이였다. 문제점 1이였던게 통신연결하는 부분의 위치가 잘못된줄알고 주저했던거였는데 1번이 해결되고 나니 자연스럽게 2번도 같이 해결이 되었다. datepicker가 onchange될때의 값을 가져와서 주소에 넣었더니 성공하였다

나의 .. 환율 api방황기 끗