Api

Łączysz się do takiego URL-a, przez XML-RPC:

http://nazwa_aplikacji:klucz_uzytkownika@www.wikicomplete.info/xml-rpc-api.php

Musisz włączyć jakieś XmlRpcServer::Nil_Parser, czy coś takiego, żeby działało dobrze w Ruby.

Po klucz_uzytkownika zgłoś się na jabberze :)

Na razie jest trochę mało, ale to może i lepiej dla uczenia ;)

Argument types

Argument to functions are passed as a dictionary (associative array). This list describes what values arguments of given name can have. Each item in the list meet one of the following formats:

  • <semantics>: <example value>
  • <semantics>: <example value>, <description>
  • <PHP class/type name>

The last one can be used only if the class/type meaning is obvious.

[DONE] site

  • name: "community"
  • ID: 7
  • DB_Site

[DONE] category

if this is optional, the default is ALL categories

  • category name: "blog"
  • ID: 7
  • DB_PageCategory

[DONE] page

  • page name: "dev:new-things", "a-page" is the same as "_default:a-page"
  • ID: 7
  • DB_Page

tags

  • array of tags: ["great", "wikidot", "php"]
  • tags string: "php wikidot great"

title

  • page title: "Some title"

source

  • page source in Wiki Syntax: "+ Some heading …"
  • DB_PageSource

Common array representation of returned objects

Facade functions return dictionary (associative array) representation for objects. This list defines what are the keys of the returned dictionaries. Each line has one of the following syntaxes:

  • <name of the key>: <example>
  • <name of the key>: <example> (<description/comment>)
  • <name of the key> (<description/comment>)

We don't have the semantics, because everyone should be able to feel it just from the name of the key (the names must be really carefully constructed).

site

  • name: "community"
  • title: "Community Portal"
  • private: true

[DONE] category

  • name: "_default", "blog", "search", "system"

[DONE] page_meta

  • site: "community"
  • category: "_default"
  • name: "my-blog-entry"
  • full_name: "_default:my-blog-entry"
  • title: "My great page"
  • tag_string: "dev php wikidot"
  • tag_array: ["dev", "php", "wikidot"]
  • parent_page: "some-category:some-page"
  • date_edited: XML-RPC Date
  • user_edited: "gabrys"
  • date_created: XML-RPC Date
  • user_created: "michal_frackowiak"

[DONE] page

  • page_meta
  • source (in WikiSyntax)
  • html (in HTML)

Functions

Each function must have defined its name, the return type and arguments expected (name = type) and their meaning, mark required/optional in one of the following syntaxes:

  • <name>: <what's the meaning of it in the context of function>
  • <name>: <what's the meaning of it in the context of function> (optional)

[DONE] site.pages(arguments array)

  • argument keys:
    • site: site to get pages from
    • category: category to get pages from (optional)
  • returns: array of page_meta

[DONE] site.categories(arguments array)

  • argument keys:
    • site: site to get pages from
  • returns: array of categories

[DONE] page.get(arguments array)

  • argument keys:
    • site: site to get a page from
    • page: page name/id to get
  • returns: page

page.save(arguments array)

  • argument keys:
    • page: page to save (may be a name of non-existing page)
    • tags: new tags (optional)
    • title: new title (optional)
    • source: new source (optional)
    • parent_page: new parent_page (optional)
  • returns: page

user.sites(arguments array)

  • argument keys:
    • user: whose sites to show
  • returns: list of sites
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License