2014-12-17 2 views
0

musicbrainz api로 한 통화에서 아티스트의 모든 릴리스 그룹 및 출시일을 얻으려면 어떻게해야합니까? 이 작업을 수행 할 수 있었던 가장 가까운 방법은 다음을 사용하는 것입니다.musicbrainz api 모든 릴리스 그룹 및 출시 날짜 받기

http://musicbrainz.org/ws/2/release-group?query=arid:494e8d09-f85b-4543-892f-a5096aed1cd4&fmt=json 

그러나 일부 릴리스 그룹은 존재하지 않습니다. 예를 들어 위의 호출을 사용하면 "EP", "Single + Remix"및 비공식 릴리스 중 일부가 표시되지 않습니다.

https://musicbrainz.org/artist/494e8d09-f85b-4543-892f-a5096aed1cd4?all=1 

또한, API 호출은 위의 출시 날짜를 반환하지 않습니다 : 기본적으로, 나는 당신이 갈 때 뮤직 브레인이 "모든"릴리스에 대한 예술가의 메인 페이지를 생성하는 동일한 목록을 생성 할 수 있도록하고 싶습니다 . 어떤 제안? 이 버그들이 있습니까? 어디에서보고 할 수있는 가장 좋은 곳이 될까요?

답변

3

당신이 (이 inc 매개 변수를 지원하지 않음) 다소 융통성있는 검색 API를 사용하지 않습니다 할 수 있지만 이미 작가의 MBID를 알고 있다면, 당신은 단순히 browse request 사용할 수있는 첫번째 일은 : https://musicbrainz.org/ws/2/release?artist=494e8d09-f85b-4543-892f-a5096aed1cd4&fmt=json&inc=release-groups를 .

inc=release-group 매개 변수를 사용하면 모든 릴리스에 대한 릴리스 그룹 정보를 요청할 수도 있습니다 (다른 정보도 요청할 수 있음). documentation을 확인하십시오.

JSON 문서에 "release-count": 317이라고 표시되어 있지만 사실 모두 포함되지는 않습니다. 이는 찾아보기 요청이 pagination을 지원하기 때문입니다. 모든 출시를 얻으려면 한도를 높이고 (limit=100 추가) 3 회의 추가 요청 (offset=100, offset=200 그리고 마지막으로 offset=300)을 수행 할 수 있습니다. 귀하의 마지막 요청 따라서 https://musicbrainz.org/ws/2/release?artist=494e8d09-f85b-4543-892f-a5096aed1cd4&fmt=json&inc=release-groups&limit=100&offset=300

하는 것입니다 (이 보장 된 결과가 아니라 발렌타인 EP 100의 오프셋과 함께 나타납니다, 말 좀 이라구요 '& (200)이 오프 흔들어 (300)와 당신없이 해적판)

fmt=json에서 fmt=xml으로 변경하면 JSON Web Service은 여전히 ​​베타 단계입니다. 안정적인 XML 웹 서비스를 사용하게됩니다.

+0

네 말이 맞아. 감사. 하루 종일 울부 짖다가 같은 결론에 도달했습니다. 찾아보기 요청을 사용하고 모든 결과를 얻으려면 API 호출을 두 번 이상 수행해야했습니다. 나는 한계와 오프셋에 대해 알지 못했다. 다음 설명도 도움이되었습니다. http://developer.infoconnect.com/paging-results-limit-and-offset xml 서비스 사용 방법을 살펴 보겠습니다. – user3080392