현재 나의 고용주는 제 3 자 호스팅 CRM 공급자를 사용하고 있으며 우리는 두 시스템간에 상당히 정교한 통합 계층을 가지고 있습니다. CRM 공급자의 기능 중 개발자는 Java와 같은 비즈니스 로직을 언어로 작성하고 사용자가 버튼을 클릭하거나 시스템에 새 계정을 제출하는 등의 이벤트에서 유효성 검사 및/또는 비즈니스 로직을 해제합니다.개발 환경 및 API 개발 우수 사례
우리가 사용하는 기능 중 하나는 호스트 공급자에서 실행되는 비즈니스 코드가 우리가 호스팅하는 웹 서비스를 호출하는 것입니다. 표준보기는 영업 담당자가 새로운 판매 리드를 입력하고 전자 메일 주소, 회사/성/이름 등을 기반으로 새 리드를 식별 할 수 있는지 확인하기 위해 시스템을 핑 (Ping)하는 버튼을 눌렀을 때 되돌아갑니다 그 개인을 나타내는 내부 GUID 이 모든 것이 잘 작동하지만, 우리는 일을 시작하기에 알맞은 개발 환경을 설정하기 위해 계속해서 벽에 뛰어 들었다.
우리의 유스 케이스는 미묘한 차이가 있지만 일반적으로 제 3 자용 API를 빌드하는 모든 개발 하우스에 적용 할 수 있습니다. API를 빌드 할 때 개발 파이프 라인 및 환경을 설계 할 때 권장되는 사항은 무엇입니까? 바깥 세상에서 소비 되나요?
저희 사무실에서는 모든 devs가 방화벽을 사용하고 있기 때문에, 진행중인 코드는 외부 세계, 여기서는 CRM 공급자에게 치지 않습니다. 우리는 방화벽에서 구멍을 뚫을 수는 있지만 보안 표면적 관점에서는 이상적이지 않습니다. 특히 지역과 같은 DMZ에 있어야하는 개발자의 수는 높습니다. 우리는 현재 DMZ에서 단일 dev 시스템을 시도하고 dev 작업을 수행하는 데 필요하다면 원격 처리를 수행하지만 여러 devs가 상자를 필요로하는 경우 자원 부족 문제가 발생합니다.).
우리는 이러한 서비스에 대한 위조 클라이언트를 구축하여 들어오는 요청을 조롱하거나 가짜로 만든 것으로 간주했지만 기능 세트를 구축하는 데 상당한 오버 헤드가 있습니다 (API의 테스트 가능성을 강화하는 것은 사실 임에도 불구하고). 또한 가끔씩 우리가 실제 클라이언트 자체에서 발생하는 문제를 진단/디버깅 할 필요가 있지만 일부 가짜 요청 페이로드가 아니라는 사실을 피할 수는 없습니다.
다른 사람들이 이러한 유형의 시나리오에서 무엇을 했습니까? 매시업의 현재와 시대에는 API를 개발 한 경험이있는 많은 사람들이 있어야합니다. 거기에있는 사람들에게 잘 작동하는 (잘 작동하지 않습니다) 이유는 무엇입니까?