2013-06-06 1 views
6

6 주 정도 동안 우리는 iTunes 검색 JSON API에 대해 문제없이 쿼리를 실행할 수있었습니다. 이번 주부터 특정 요청 (약 1K - 2K) 후에 403 개의 오류가 표시되기 시작했습니다. 우리는 이것이 속도를 제한하는 문제라고 가정하고 있습니다. 우리가 간과하고있는 또 다른 설명이 있습니까?iTunes 검색 JSON API 반환 서버 403에 금지되었습니다.

+0

우리는 6 월 4 일부터 Apple iTunes RSS 피드에서 거대한 403을 경험했는데, 그것이 WWDC – tszming

답변

14

당신이 가격과 등급을 얻으려고한다면 내 검색은 iTunes Search API를 사용하여 검색이 아닌 조회를 수행하는 것입니다.

이러한 가정이 사실이라면 쿼리에 여러 ADAM ID를 쉼표로 구분하여 나열하여 조회 요청을 "일괄 처리"할 수 있습니다.

예 : 미국의 이러한 애플 리케이션 모두에 대한 결과를 얻으려면 -

https://itunes.apple.com/us/app/9-innings-2013-pro-baseball/id530061728?mt=8

https://itunes.apple.com/us/app/homerun-battle-2-free/id491221570?mt=8

을 -이 작업을 수행 할 것 : https://itunes.apple.com/us/lookup?id=491221570,530061728

을 나는 한계 쿼리 당 50 개 IDS 믿는다 .

approximately 900K apps currently live in the App Store이있는 경우 일괄 처리 전에 균등하게 요청을 펼치면 ~ 625 회의 쿼리/분을 처리한다는 빠른 통계가 있습니다. (900K/24 시간/60 분 == 625)

그러나 50 개 그룹으로 일괄 처리하면 약 13 개의 검색어/분 (900K/50 요청 당/24 시간/60 분 = = 12.5). 이것은 허용 된 한도 내이어야합니다.

... @ Crashalot - 앱 권장 사항을 수행하는 경우 얘기해야합니다.

+0

이것은 정말 좋은 전략처럼 들리지만,이 역시 시도해야 할 것입니다. –

+2

제한은 실제로 쿼리 당 200이지만 403 문제는 이와 관련이 없습니다. 403 오류는 ID가 하나 인 쿼리에 대해서도 반환됩니다. Apple은 검색 API에 대해 수행 할 수있는 HTTP 요청 수에 대해보다 엄격한 규칙을 적용 할 수 있습니다. – Cat

+0

최근에이 문제가 발생했는데 쿼리 당 200 개의 ID를 사용할 수 있습니다. 제한을 초과해서는 안되는 Apple 서버에 5000 개의 쿼리를 보내야합니다. – benck

1

나는 비율 제한이 게시 된 것을 믿지 않지만, 그들이 존재한다고 가정하는 것이 안전하다고 생각합니다. 실행중인 1-2k 요청에 대한 시간표는 몇 분, 몇 시간, 며칠입니까?

불필요한 쿼리를 방지하기 위해 캐싱을 구현하는 것이 좋습니다. 당신이 이것을 이미하고 있지 않다면 당신은 그것을 조사해야 할 것입니다. 또 다른 옵션은 enterprise partner feed을 사용하는 것입니다.하지만 액세스하려면 iTunes 제휴사 여야합니다.

+0

과 관련이 있는지는 분명하지 않습니다. 가능할 때 우리는 확실히 캐시하지만, 우리가 필요로하는 것 중 하나는 앱의 가격입니다.이 가격은 매일 바뀔 수 있습니다. 확인할 수있는 유일한 방법은 매일 모든 앱의 가격을 가져 오는 것입니다. 우리에게 또 다른 옵션이 보입니까? 감사! – Crashalot

+0

@ Crashalot - 몇 시간에 걸쳐 하중을 분산 시키려고 했습니까? 매일 같은 시간에 모든 요청을 부릅니까? –

+0

안녕하세요 @TedHosmann. 우리는 사람들이 인디 개발자의 멋진 앱을 발견하도록 돕기 위해 노력하고 있습니다. 가장 인기있는 앱이 아닐 수도 있습니다. 우리는 당신이 itunes 제휴 그룹에서 일하고 귀하의 의견을 사랑하는 것을 볼 수 있습니다. 등급 데이터를 얻는 방법은 무엇입니까? 그것은 EPF 파일에 없습니다. 이것이 평가 데이터를 가져 오는 유일한 방법 인 것처럼 보이기 때문에 JSON API를 사용하고 있습니다. 우리는 수 시간에 걸쳐 부하를 행복하게 퍼뜨릴 수 있으며, 등급 데이터를 가져올 수있는 승인 된 방법 인 경우 스크립트가 실행될 때 변경합니다. – Crashalot