2011-10-24 3 views
0

Mac OS X Server (Snow Leopard & Lion)에서 내장 Wiki/블로그를 편집하기 위해 iOS 용 클라이언트 응용 프로그램을 만들고 있습니다.OS X 위키/블로그 서버 API

MetaWeblog, Atom API (시도했지만 실패 함) 또는 XML-RPC를 사용할 수있는 것 같습니다. 그러나 API 문서를 찾을 수 없습니다.

제 질문은 문서 또는 오픈 소스 샘플을 어디에서 찾을 수 있습니까? 찾은 모든 샘플은 OS X Server를 처리 할 수 ​​없습니다.

많은 감사드립니다.

피크

업데이트 : Heres는

위키 시스템의 표준 구조 : 심지어 ~/그룹 아래에있는 'GROUP_NAME'의 목록을 얻을 수

/

답변

1

T 그는 위키에 대한 자바 스크립트 소스 코드가 난독 화되지 않으며 문서로 사용하기에 충분히 간단합니다. 예를 들어, 인증 프로세스 :

sendAuthenticationPlain: function() { 
    $('webauth').addClassName('verifying').removeClassName('error'); 
    var username = $F('username'); 
    var password = $F('password'); 
    var csrf = $F('authenticity_token'); 
    var plainResponse = "username="+username+"&password="+password 
    this.setRememberMeCookie(); 
    var ajaxReq = new Ajax.Request(window.location.protocol + '//' + window.location.host + "/auth/plain_login", { 
     method: 'post', 
     requestHeaders: {'X-CSRF-Token': csrf}, 
     onComplete: this.gotAuthentication.bind(this), 
     postBody: plainResponse 
    }); 
    return false; 
}, 
gotAuthentication: function(origRequest) { 
    if (origRequest.responseJSON) { 
     var jsonObject = origRequest.responseJSON 
     if (jsonObject['success']) { 
      var redirect = jsonObject['redirect']; 
      var authToken = jsonObject['auth_token']; 
      this.successCallback(authToken, redirect); 
     } else { 
      var errorString = jsonObject['error_string'] 
      this.failureCallback(errorString); 
     } 
    } 
}, 

그래서 그냥 POST 데이터에 사용자 이름/암호 값이 <input type="hidden" name="authenticity_token" /> 요소로부터 들어오는이다는 X-CSRF 토큰 헤더를 포함/plain_login를 정식하기 위해 POST 요청을 보낼 페이지에. 서버는 'success'boolean을 포함하는 JSON 문자열을 반환합니다.

또한 예를 들어 이것은 PUT 요청의 JSON 내용이 위키 페이지를 저장하는 것입니다, 서버에서에/아약스 요청을 모니터링하는 사파리/크롬 개발자 도구를 사용할 수 있습니다

:

wiki save put request

+0

안녕하세요 통해 서버에

sudo -u _teamsserver thin start 

액세스 여기 http://stackoverflow.com/ 좀 걸릴 수 있습니다 :

그래서 유와도 공동 작업/coreclient에서 개발 서버 응용 프로그램을 시작할 수 있습니다 질문/23737364/os-x-server-wiki-how-can-i-get-the-wiki-page-to-an-anothe "부분보기를 만들려고합니다. 하나의 위키 페이지에서 다른 페이지의 콘텐츠로 이동합니다. 이것이 가능한가? – unmircea

1

I을 앱을 통한 액세스를 위해 최신 Lion 서버에서 작업하고 있습니다. Lion server 웹 서비스의 구조는 레일즈상의 루비를 기반으로하며 이해하기 쉽습니다 (이전에는 루비 경험이 없었습니다). 그러나 전체 시스템 (구현 된 부분 용)은 API 액세스 용으로 설계되지 않았습니다. 예를 들어 인증 시스템은 쿠키 인증 (세션 ID 또는 무언가)을 기반으로합니다. 요청의 모든 출력이 json 응답을 갖는 것은 아닙니다. json 본문에 실패한 요청 응답이 없습니다.

모든 작업은 자기 자신이 수행해야합니다.

첫 번째는 서버 인증입니다. 모든 프로세스가 노출되는 :

'wiki/api/csrf' to get the X-CSRF-Token value 
'auth/challenge_advanced?username=xxxx' to get a challenge parameters 
'auth/digest_login' to use md5-sess digest to login 

동안, MD5-SESS 다이제스트 (CC_md5 lib 디렉토리와 나를위한 목적-C)를 digest.js 다음

에 다음 자신의 코드에 의해 계산된다 당신은 JSON은 그래서 당신의 요청 lib 디렉토리/API는 쿠키를 처리해야합니다, 액세스 권한을 부여,

respond_to do |format| 
    format.html 
    format.js { render_js_pagination_response(@search, 'people/entitylist_item') } 
    format.json { #new added json support 
    rs = [] 
    @search.results.each do |r| 
     nr = filterUserInfo r # I only need some of the all properties 
     rs.push nr 
    end 
    render :json => rs 
    } 
end 

한 가지 중요한 점은, 사자 서버 사용 웹 인증/쿠키 등 필요한 컨트롤러를 통해 UR 지원을 렌더링 첨가 할 수있다.

위의 모든 방법은 api/json 액세스가 가장 간단한 해결책이지만, 최선은 아닙니다. API 액세스에 맞게 모든 액세스 진행률을 다시 조정하는 것이 좋습니다.

BTW : 전체 프로젝트 경로를/usr/share/collabd /에 복사 한 다음 모든/your projects 경로/collab/coreclient/config/collabcore {1,2,3,4} .yml을 수정할 수 있습니다. , 생산을 개발로 바꾼다. , http://localhost:3000