본문 바로가기

개발 이야기

오픈소스 API서버 때문에 개고생한 후기

728x90

하기에 있는 링크의 오픈소스API(배송조회API)를 이용해서

자미린으로 타이젠앱 개발을 하다가,

 

발견했는데, 배송조회 API서버에서 http response STATUS code가

제대로 response가 와도 STATUS code가 false로 만 오네요.

이것 때문에 개고생 했네요.

 

결국 오픈소스인 API서버에 git issue를 올렸네요.

 

참고로 오픈소스인 배송조회 API서버는 하기에,,,

https://tracker.delivery/guide 

 

제 앱 소스는 하기에,,,

https://bit.ly/3lIXZX2 

  ==> client 소스 중 아래 코드에서 

 

using (HttpResponseMessage response = await client.GetAsync(uriStr))

{

  DbgMsg = string.Format("HTTP Get Req.");

  //if (response.IsSuccessStatusCode)

  if(true)

  {

    DbgMsg = string.Format("Req Success.");

    responseBody = response.Content.ReadAsStringAsync().Result;

    DbgMsg = string.Format("Json parse.");

    return JsonParse(responseBody);

  } else {

    DbgMsg = string.Format($"Req. Fail {response.IsSuccessStatusCode}");

    return false;

  }

} return false;

 

==> 여기 코드에서 //if (response.IsSuccessStatusCode) 무조건 response.IsSuccessStatusCode 가 false로 오네요.

   
다른 API (구글API)를 동일한 클라이언트 코드로 테스트 해봤는데,

전혀 문제가 없이 response.IsSuccessStatusCode 가 true로 왔습니다.

 

결국 API서버 문제인 것으로 잠정 결론 내고, github에 issue도 올렷네요.

(=> https://github.com/shlee322/delivery-tracker/issues/88  )

 

언제 수정될 지는 전혀 예상이 안되는 상황인 것 같아,

다른 배송조회 API를 찾아보는 중이네요.

 

  ==> (추가업데이트)

         아래와 같이 확인해보니, 잘못된 운송장 번호인 경우, 404에러가 뜨고

         제대로된 운송장 번호를 입력하니 200 OK 뜨네요.

         참고로,

         404 에러가 떠도 HTTP responseBody 가 json으로 파싱이된다는 사실을 새로이 알았습니다.

         

         "404 not found 이면 조회한 트래킹 코드가 없다는 뜻인거 같은데요?

         제가 오늘 배송 되는 물건 송장 번호로 조회 해보니 200 OK 에 제대로 된 데이터가 나오는데

         송장 번호를 먼저 확인해보셔야 할거 같습니다

         보통 REST API 는 HTTP Status Code 값을 가지고 응답을 사용하기 때문에

        404 Not Found 이면 찾으려는 트래킹 번호가 없다 라는 식으로 해석하시면 될거 같네요"

        (출처: https://www.clien.net/service/board/cm_app/15652835?od=T31&po=0&category=&groupCd= )