모바일 측면에서 새로운 iOS 앱 프로젝트를 진행하고 있습니다. 일부 아키텍처 변경이 일어나고 있으며 우리가 빌드하는 앱과 웹 사이트와 같은 다른 클라이언트가 사용할 사용자 정의 빌드 개인 API에 의존해야합니다.
설계중인 API는 HTTP 동사에 매핑 된 Rest 스타일의 리소스 중심 URI 및 CRUD 작업을 따릅니다. 같은 것들:
GET www.example.com/books
DELETE www.example.com/books/482094
POST www.example.com/users/6793
문제는이 스타일로 인해 종종 모바일 클라이언트가 단일 앱 화면을로드하거나 단일 사용자 UI 작업을 관리하기 위해 많은 요청을 수행해야한다는 것입니다. 이로 인해 필요한 모든 것이 확보 될 때까지 앱이 8 초 동안 로딩 모드에있게됩니다. 느리고 응답이없는 앱입니다.
모바일 클라이언트는 연결과 관련하여 심각한 제한이 있으므로 이상적으로는 다음과 같은 규칙을 따라야합니다.
1 화면 == 1 API 호출
1 저장 == 1 API 호출.
이로 인해 REST 설계 원칙을 따르는 충돌 과정이 발생하는 많은 상황이 있습니다. 예를 들면 다음과 같습니다.
- 앱이 하루 동안 오프라인 상태 였고 4 개의 백엔드 데이터베이스 테이블과 동기화해야한다고 가정 해 보겠습니다.
www.example.com/sync_everything?since=2015-07-24
- 사용자가 할 일 목록에 작업을 표시하는 등 사용자가 많은 개체를 편집 할 수있는 화면이 있다고 가정합니다. 편집마다 하나의 API 호출이 아닌 단일 배치 API 호출에서 모든 작업 레코드를 편집 할 수있는 방법이 있어야합니다.
- ORDER, SALESMEN 및 PRODUCT db 테이블의 정보를 혼합하는 화면이 있다고 가정하면 세 번이 아닌 한 번의 호출로 해당 데이터를 가져와야합니다.
위험은 우리가 가진 가장 편안한 API와 가장 쓸모없는 응답없는 모바일 앱으로 끝날 수 있다는 것입니다.
문제는 내가 거기에 새로운 계약자이고 내가 필요로하는 것은 그 요점을 만드는 데 도움이되는 것, 존경받는 출처의 기사 또는 이와 비슷한 것입니다. 모바일 클라이언트의 REST 스타일을 타협하는 주요 업체 (예 : 복합 집계 API 엔드 포인트 사용)
또는이 일반적인 문제에 대한 해결책. 감사!