2017-12-29 11 views
0

그래서 REST API 디자인과 관련하여 질문이 있습니다.REST API - 다른 API에서 여러 API를 호출 할 수 있습니까? 내부 API 호출 중 하나가 실패하면 어떻게됩니까?

특정 동작이있는 여러 개의 REST API가 있습니다. 퇴직자 등의 상태를 변경하기 전에 차량에 현재 고용주가 있는지 여부를 확인하기위한 유효성 확인을 수행하는 차량 상태 업데이트 (예 : 사용 가능, 임차 계약, 유지 보수, 은퇴). 다른 하나는 차량 손상 사례를 기록하는 것입니다 일단 차량이 고용에서 반환되면, 이것은 차량 상태에 대한 일반적인 의견을 기록합니다. 그리고 차량의 사용을 중지시키는 다른 하나 (예 : 수명 만료)는 RETIRE API의 일부로 다른 두 API의 논리와 동작을 복제합니다.

그러나이 API에 대한 호출의 일부로 개별 API를 호출하도록 RETIRE API를 변경하여 코드/논리의 중복을 방지하려면 다른 API의 로직을 변경해야 할 때 도움이됩니다. RETIRE API에서이 논리를 복제하지 못하게하십시오.

현재 API 디자인 내에서 오류 처리가 있습니다. 특정 작업으로 인해 오류가 발생하면 API는 트랜잭션을 롤백하고 사용자에게 오류가 발생한 이유를 표시합니다. 그렇지 않으면 변경된 데이터를 커밋합니다. 이것은 잘 작동합니다.

그러나이 RETIRE API에서 각 API를 호출하면 어떻게 오류를 처리 할 수 ​​있습니까? RETIRE API가 먼저 'DAMAGE API'를 호출하여 손상을 기록하고 성공하면 데이터를 커밋하지만 'VEHICLE STATUS'API가 실패하여 관련 오류가있는 사용자에게 응답을 보내지 만 여기는 문제는 손상 API가 이미 실행되어이 데이터가 이미 저장되었으므로 ... 사용자가 다시 시도하고 이번에 모든 것이 성공하면 '피해'섹션에 데이터가 복제됩니다.

그렇다면 API가 모두 성공적으로 반환되면 어떻게 모든 API에 대한 데이터 만 커밋 할 수 있습니까? 또는 여전히 서로 독립적 인 3 개의 API를 가지고 있지만 함수를 만들고 각 API 내에서 이러한 함수를 호출하는 것이 더 낫습니다. 따라서 주어진 동작의 논리를 변경하면 모두 따라갈 수 있습니까?

죄송합니다.하지만 문제를 해결하는 데 도움이되고 싶습니다. 사전에

덕분에

답변

1

귀하의 설명은 당신이 중단 할 API가 손상 API의 논리 일부, 전부는 아니지만 그것의 사용 ... 그래서 다시 사용할 물건을 인수 분해 할 것을 나타냅니다 두 API에서 호출 할 수있는 내부 메소드로 변환합니다.

+0

모두 같은 논리입니다. 그래서 나는 당신이 그것을 방법으로 옮기라고 말한 다음 두 apis에서 이것을 호출 할 수 있다고 생각합니다. – Michael

+0

트랜잭션 처리와 오류보고를 제외하고 같은 논리의 모든 것, 즉 논리의 일부 *. –

+0

아하나. 고마워. – Michael