2016-10-06 2 views
2

내 응용 프로그램의 핵심 요구 사항은 모든 컬렉션, 그래프, 데이터 및 API와 함께 ArangoDB를 자동으로 배포하는 것입니다. HTTP API 및 다양한 래퍼가 지금까지는 충분했지만 Foxx 서비스를 배포하기위한 API를 찾을 수 없었습니다. 거기에 RESTful API를 통해 또는 래퍼 중 하나를 통해 Foxx 서비스를 만들고 배포 할 수있는 방법이 있습니까? 지금까지 Foxx 서비스를 만드는 유일한 방법은 웹 인터페이스를 이용하는 것입니다.ArangoDB : API를 통해 새 Foxx 서비스 만들기

나는 그것이 가능하다고 믿게하는 this question을 발견했지만 Foxx 서비스의 힘내 위치를 지정하는 방법을 모르겠습니다. 웹 UI없이 Foxx 서비스를 생성하고 가능한 매개 변수를 나열하는 지침을 제공 할 수 있습니까?

+0

Foxx 관리자는 옵션입니까? 'foxx-manager install option1 = value1' – CoDEmanX

+0

ArangoSH에 의존하지 않고 RESTful 또는 Python을 통해 구현 될 수있는 것을 선호합니다. 우리 팀은 플랫폼 간 협력을하고 있으며 누구나 ArangoSH를 설치 한 것은 아니므로 CLI는 이상적이지 않습니다. 모든 것이 스크립트로 작성되어 있기 때문에 bash에 액세스하고 cmd에 액세스하는 것이 Python과 매우 다르므로 CLI 호출이 필요할 때 스크립트를 적절히 교차 플랫폼으로 작동시키는 것은 매우 어렵습니다. –

+0

내 프로젝트 https://foxx-framework.com을 살펴볼 수 있습니다. foxx-manager를 사용하여 모든 서비스를 배포하는 스크립트를 사용합니다. – solisoft

답변

3

REST API를 통해 Foxx 서비스를 설치하려면 끝점 HTTP PUT /_admin/foxx/install을 사용할 수 있습니다.

mountappInfo이라는 속성으로 JSON 본문을 보내야합니다. mount에는 마운트 포인트가 있어야합니다 (슬래시로 시작해야 함). appInfo은 마운트 할 응용 프로그램입니다. 예를 들어 /_api/upload에 대한 호출에서 서버가 이전에 반환 한 파일 이름을 포함 할 수 있습니다.

{ 
    "appInfo" : "uploads/tmp-30573-2010894858", 
    "mount" : "/my-mount-point" 
} 

또한 외부 서버에서 HTTP (S)를 통해 사용할 수있는 zip 파일에서 폭스 서비스를 설치할 수 있습니다

원격 URL에서 설치합니다. 당신은 또한 GitHub의 저장소에서 폭스 서비스를 설치할 수 있습니다

GitHub의에서 저장소 공공 접근, 예를 들어 경우, 설치

{ 
    "appInfo" : "https://user:[email protected]/my-service.zip", 
    "mount" : "/my-mount-point" 
} 

: 당신은 필요에 따라 HTTP 기본 인증에 대한 사용자 이름과 암호를 포함 할 수 있습니다 장면 뒤에

{ 
    "appInfo" : "git:arangodb-foxx/demo-hello-foxx:master", 
    "mount" : "/my-mount-point" 
} 

는 ArangoDB는 GitHub에 제공하는 우편 번들에 대한 일반 URL로 요청을 변환합니다.

또한 로컬 파일 시스템에 zip 파일 또는 디렉터리에서 폭스 서비스를 설치할 수 있습니다

로컬 파일 시스템에서 설치 :이 또한 디렉토리와 함께 작동

{ 
    "appInfo" : "/path/to/foxx-service.zip", 
    "mount" : "/my-mount-point" 
} 

하지만 ArangoDB이 생성됩니다 이 경우 임시 zip 파일입니다.

+0

대단한 출발! 감사! 구체적으로 어떻게하면 git 저장소에서 서비스를 가져 오도록 지정할 수 있습니까? –

+0

내 대답이 – mpv1989

+0

업데이트 됨 Git SSH 또는 HTTPS에서이 작업을 수행 할 수있는 방법이 있습니까? 저장소는 자체 호스팅 된 보안 GitLab에 있습니다. –

관련 문제