2011-10-24 13 views
0

Mac OS X Server(Snow Leopard & Lion)で、組み込みのWiki /ブログを編集するためのiOS用クライアントアプリケーションを開発中です。OS X Wiki/Blog Server API

MetaWeblog、Atom API(私は試してみましたが失敗しました)またはXML-RPCを使用できるようです。 しかし、私はそれのためのAPIドキュメントを見つけることができません。

私の質問は、どこで文書やオープンソースのサンプルを見つけることができますか? 私が見つけたすべてのサンプルは、OS X Serverを扱うことができません。

非常に感謝しています!

ピーク

更新:相続人

のWikiシステムの標準構造:私も〜/グループ]の下に 'GROUP_NAME' のリストを取得することはできません

/

Wiki Structure

答えて

1

T彼はwikiのjavascriptソースコードは難読化されておらず、ドキュメントとして役立つだけのシンプルなようです。例えば、認証プロセス:

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データ内だけでユーザー名/パスワードを含む、/ plain_loginをのauthするPOSTリクエストを送信し、値だX-CSRFトークンヘッダが<input type="hidden" name="authenticity_token" />要素から来ていますページ上にサーバーは、 'success'ブール値を含むJSON文字列を返します。

あなたはまた、例えば、これはPUTリクエストのJSONの内容はwikiページ保存することで、サーバからの/ AJAXリクエストを監視するためにサファリ/クロームの開発ツールを使用することができます

wiki save put request

+0

こんにちはスルーサーバーへ

sudo -u _teamsserver thin start 

アクセス質問/ 23737364/os-x-server-wiki-how-can-i-get-the-wiki-page-on-anotheを表示する 「パーシャルビュー」を作成しようとしています1つのwikiページから他のページのコンテンツに移動します。これは可能ですか? – unmircea

1

Iを最新のLionサーバーを使って、アプリケーション経由でアクセスできます。 LionサーバーのWebサービスの構造は、Ruby on Railsをベースにしており、わかりやすく(以前はルビー体験はありません)。ただし、(実装された部分の)システム全体がAPIアクセス用に設計されていません。たとえば、認証システムはCookie認証(セッション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-SESのダイジェストは(CC_md5 libにして、私のためのObjective-C)digest.jsに以下の独自のコードによって計算される

その後、あなたは、JSONは、このような

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 

一つ重要なことは、あなたの要求のlib/APIはクッキーを処理しなければならないので、アクセスを許可するライオン・サーバーの使用Web認証/クッキーである、として必要なコントローラを、ウルするためのサポートをレンダリング追加することができます。

上記のすべてはapi/jsonアクセスの最も簡単な解決策ですが、最適な解決策はありません。すべてのアクセスの進捗状況をAPIアクセスに合わせて再調整する方がよいでしょう。

私は自分のプロジェクトのディレクトリに/ usr/share/collabd /全体をコピーし、すべて/あなたのプロジェクトのパス/ collab/coreclient/config/collabcore {1,2,3,4} .ymlを変更することができます、生産を開発に変えてください。

ので、uはとコラボ/ coreclientの下で開発サーバアプリを起動することができます。あなたがここにhttp://stackoverflow.com/を見てとることができ、http://localhost:3000