2016-11-10 5 views
0

API 작업을 호출하여 개체 목록을 가져온 다음 해당 목록의 각 개체에 대해 다른 API 작업을 호출하여 해당 개체에 대한 추가 세부 정보를 가져오고 해당 세부 정보를 목적. 목표는 필요한 모든 특성 (또는 세부 사항)을 가진 오브젝트 목록을 리턴하는 것입니다. 아래 예제에서 /allObjects 호출은 2 개의 속성 (idk1)이있는 모든 개체의 목록을 가져옵니다. 하지만 내 신청서에는 id, k1k4의 3 가지 속성이 필요합니다. 그래서 k4 속성을 포함하는 각 개체에 대한 자세한 정보를 얻기 위해 다른 API 메서드를 호출합니다. 해당 상세 속성을 원래 결과 집합의 개체에 복사하고 "풍부한"결과 집합을 반환합니다. 그러나이 지연 시간 비용은 높을 수 있습니다. 응용 프로그램을 너무 느리게하지 않고이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 현실 세계에서 나는 500-2000 개의 대상을 다루고 있습니다.여러 API 호출 결과 결합

GET /allObjects yields JSON results => 
{ 
    "data" : [ 
    { 
     "id" : "123", 
     "k1" : "v1" 
    }, { 
     "id" : "456", 
     "k1" : "v1" 
    } 
    ] 
} 

for (obj in results.data) { 
    GET /object/{obj.id} yields JSON result => 
    { 
    "data" : { 
     "id" : "123", 
     "k1" : "v1", 
     "k2" : "v2", 
     "k3" : "v3", 
     "k4" : "v4" 
    } 
    } 
    // Add k4 property to original result-set object, and assign 
    // it the value of the k4 property in the individual result object. 
    obj.k4 = result.data.k4; 
} 

return results.data; 

답변

1

귀하의 요구 사항은, 당신이 (당신이이 API를 결합하는 API 개발자를 설득 할 수없는 한) 매쉬 업을 위해 갈 수밖에없는 그런 것이다.

대기 시간 비용이 낮은 인 매시업 서비스를 선택하여 매시업 논리를 추상화하는 응용 프로그램 사이에 서서 반대로,이 경우 사용자 정의 언어를 사용할 수 있습니다 귀하의 응용 프로그램을 프로그래밍하는 일종의 작업. 이 두 가지 옵션 모두 Ballerina으로 수용 할 수 있습니다. 사용하는 것이 얼마나 쉬운 지 보여주는 here 게시물을 작성했습니다.