>

우리는 이미 가동중인 웹 사이트를 가지고 있고 고객 중 한 명이 웹 사이트에서 통계를 추적 할 수있는 프로젝트가 할당되었습니다. 개발이 완료되는 즉시 모든 고객에게이 기능을 제공하고자합니다. 각 '클라이언트'에는 '하위 도메인'이 있습니다. 예 : www.website.com/client1, www.website.com/client2 등을 비롯하여 각 클라이언트에 대한 사용량을 개별적으로 추적하려고합니다.

우리는 Google 웹 로그 분석에 의해 등록 된 데이터를 끌어와도 그들은 자신의 API로 제공하는 제 3 자로부터 데이터를 가져, 우리 자신의 플랫폼의 사용에 따라 통계를 작성해야합니다 (그들은 제 3 자가 API를 통해 액세스 할 수있는 데이터를 사용하는 솔루션). 이 모든 데이터는 그래프와 표가있는 웹 페이지에 표시되어야합니다.

나중에 확장 성 문제를 피하기 위해 처음부터 올바른 아키텍처를 선택하고 싶었습니다.

최근 개인 및 공개 API의에 대해 읽기 시작.

현재로서는 자체 통계를 사용하는 다른 (내부) 응용 프로그램이 없지만 응용 프로그램을 사용하는 웹 사이트 일뿐입니다. 그러나 필요한 경우 나중에 확장하고 다른 응용 프로그램에서 통계를 사용하려면 개인 API가 우리에게 큰 도움이 될 것이라고 생각합니다.

제 3자가 우리가 선택한 통계 데이터를 사용할 수 있도록하기 위해 공개 API를 만들려고했습니다.

Private&Public API가 이것에 대한 올바른 방법입니까?

내가 겪고있는 질문 중 하나는 이러한 API의 아키텍처가 어떻게 보이는가이다. 대부분 현재 공석 데이터에 대한 공개 API가 이미 있습니다. 이 'API'는 기본적으로 CodeIgniter 솔루션 내부의 PHP 클래스 (컨트롤러)입니다. URL을 통해 호출되고 결과와 함께 JSON 객체를 반환합니다. (예 : www.website.com/api/vacancy/xxx)

(적절한) 프라이빗 및 퍼블릭 API 솔루션/아키텍처를 만들려면 웹 사이트 (CodeIgniter)에서 API를 자유롭게 설정해야합니까? 이에 대한 일반적인 해결책은 무엇입니까? 아니면 현재 플랫폼에서 현재 상태로 유지하는 것이 좋습니까? (그리고 사람들은 www.website.com/api/stats/xxx를 통해 통계 API를 호출합니까?)

  • 답변 # 1

    아키텍처와 같은 마이크로 서비스를 사용하는 것이 거의 항상 옳으므로 초기 생각은 합리적입니다. 이와 같이 작동하면 API를 독립적으로 확장 및 배포 할 수 있으며 사이트에 대한 성능 부작용을 피할 수 있습니다 (또는 그 반대). 단일 응용 프로그램으로 끝내고 싶지 않은 경우 새 API 내에서 기본 사이트 데이터에 액세스하는 방법에주의하십시오. API와 관련하여 필요한 유연성을 달성하기 위해 oauth2와 같은 프로토콜을 구현하는 것이 좋습니다. 또한 문서화하고 API를 테스트하는 데 자신감을 사용할 수 있습니다. 모두 내가 힘이 당신에게 많은 도움이 있지만, 먼저 답해야했다 자신이 정말 당신을 너무 깊이 갈 필요하거나 단순한 솔루션이 필요합니다.

  • 답변 # 2

    나는 다중 테넌트가 최선의 선택이라고 생각합니다. 일반적으로, 멀티 테넌시는 모든 고객이 자신의 데이터베이스를 가지고있을 때입니다. 데이터는 분리되어 있습니다. 코드베이스는 동일하며 이미 존재합니다. 이해했듯이 프로젝트가 진행 중입니다. 아무것도 다시 디자인하거나 다시 쓰지 않습니다.

관련 자료

  • 이전 ios - 버튼 클릭시 UIPageViewController를 여는 방법
  • 다음 ruby - Rails에서 제출 버튼을 클릭 한 후에 만 ​​각 루프를 시작하려면 어떻게해야합니까?