OS X Wiki/博客服务器 API
我正在开发一个 iOS 客户端应用程序,用于编辑 Mac OS X 服务器(Snow Leopard 和 Lion)上的内置 Wiki/博客。
看来我们可以使用 MetaWeblog 、 Atom API(我已经尝试过但失败了)或 XML-RPC 。 但是,我找不到它的任何 API 文档。
所以我的问题是,在哪里可以找到文档或一些开源示例? 我发现的所有示例都无法处理 OS X Server。
非常感谢!
更新:
这是 Wiki 系统的标准结构:
我什至无法获取 ~/Groups/ 下的“group_name”列表
I'm working on a client app for iOS to edit the built-in Wiki/Blog on Mac OS X Server (Snow Leopard and Lion).
It seems that we are able to use MetaWeblog , Atom API(I've tried but failed) or XML-RPC.
However, I can't find any API document for it.
So my question is, where can I find the documents, or some open source samples?
All samples I found can't deal with the OS X Server.
Much appreciate!
Update:
Heres the standard structure of the Wiki system:
I can't even get the list of the 'group_name' under ~/Groups/
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
wiki 的 JavaScript 源代码没有被混淆,而且看起来很简单,可以作为文档。例如,身份验证过程:
因此,您向 auth/plain_login 发送 POST 请求,其中仅包含 POST 数据中的用户名/密码和 X-CSRF-Token 标头,该标头的值来自
元素。服务器返回包含“成功”布尔值的 JSON 字符串。
您还可以使用 safari/chrome 的开发人员工具来监视发往/来自服务器的 ajax 请求,例如,这是保存 wiki 页面的 PUT 请求的 JSON 内容:
The javascript source code for the wiki is not obfuscated, and it seems simple enough to serve as documentation. For example, the authentication process:
So you send a POST request to auth/plain_login, containing just the username/password in the POST data and an X-CSRF-Token header who's value comes from the
<input type="hidden" name="authenticity_token" />
element on the page. The server returns a JSON string containing 'success' boolean.You can also use safari/chrome's developer tools to monitor ajax requests to/from the server, for example this is the JSON contents of a PUT request to save a wiki page:
我正在开发最新的 Lion 服务器,以便通过应用程序进行访问。 Lion服务器Web服务的结构基于Ruby on Rails,并且很容易理解(我以前没有Ruby经验)。然而,整个系统(对于实现的部分)并不是为API访问而设计的。例如,身份验证系统是基于Cookie身份验证(会话ID或其他东西)。并非所有请求的输出都有 json 响应。没有任何带有 json 正文的失败请求响应。
所有的工作都需要你自己完成。
第一个是向服务器进行身份验证。所有过程都向您公开:
同时,md5-sess摘要是由您自己的代码计算的,遵循digest.js(对我来说是objective-c,带有CC_md5 lib),
然后您可以向您所需的控制器添加json渲染支持,例如,
一件重要的事情是,lion 服务器使用 web auth/cookie 来授权访问,因此您的请求 lib/api 必须处理 cookie。
以上是 api/json 访问的最简单的解决方案,但不是最好的解决方案。您最好重新处理所有访问进度以适应 api 访问。
顺便说一句:您可以将整个 /usr/share/collabd/ 复制到您自己的项目目录中,然后修改所有 /您的项目路径/collab/coreclient/config/collabcore{1,2,3,4}.yml,更改生产到发展。
所以你可以在 collab/coreclient 下启动一个开发服务器应用程序:
通过 http://localhost:3000 访问服务器
I'm working on the latest Lion server, for an access via an app. The structure of the Lion server web service is based on ruby on rails, and is easy to understand ( I have no ruby experience before). However, the whole system(for the implemented part) is not designed for API access. For example, the auth system is based on Cookie authentication(session id or something). not all the output of the request has a json response. Not any failed request responses with a json body.
all the work need to be done by ur self.
The first is to authenticate with the server. all the process is exposed to you:
while, the md5-sess digest is calculated by your own code following to the digest.js (objective-c for me, with CC_md5 lib)
then you can added json render support to ur required controllers, such as,
One important thing is, the lion server use web auth/cookie to authorize an access, so your request lib/api must handle the cookies.
all above is a simplest solution the the api/json access, but not the best one. U had better to re-work all access progress to suit the api access.
BTW: u can copy the whole /usr/share/collabd/ into ur own project's dir, then modify all /your projects path/collab/coreclient/config/collabcore{1,2,3,4}.yml, change the production to development.
so u can start a development server app under collab/coreclient with:
access to the server thru http://localhost:3000