|This idea has been implemented
We currently have a XML-RPC API and there is a plugin for JSON-RPC. It would be better to have a more abstract RPC-Interface that could then be implemented by specific Protocol handlers like XML-RPC or JSON-RPC or even REST API.
This would possibly include writing new functions that should be used in DokuWiki core, too, as currently there is quite some functionality duplicated.
This part of the idea will already be implemented by Jan Zmátlík, the implementation should be finished as of April 21. There could however be some work that needs to be finished, if you are interested in this just read the mailinglist and search or ask what the current status is. The initial discussion can be found in the following mails:
- General presentation of the project: http://www.freelists.org/post/dokuwiki/Help-with-DokuWiki-as-a-school-project,1
- Some further details: http://www.freelists.org/post/dokuwiki/Help-with-DokuWiki-as-a-school-project,4
- Jan stating that he'll work on this project: http://www.freelists.org/post/dokuwiki/Interface-for-RPC
- An overview of how to proceed: http://www.freelists.org/post/dokuwiki/Gsoc-REST-ful-API-alongwith-XMLJSON-RPC,3
Here are some additional ideas for improving the RPC interface. You can use them as starting point for your own ideas.
- Additional API calls. Managing ACLs has already been requested by some users.
- A Wordpress-like interface for blogtng so existing blogging clients and websites that offer “push-to-blog” functionality can be used with DokuWiki
- A more fine-grained access control. E.g. read-only access could be enabled independently of write access as only write access could be easily abused.
- Implementing RESTful API along with XML/JSON RPC.
You of course don't need to pick all of them and as always your own ideas are probably the best ones.
- You should know PHP
- Knowledge of XML-RPC is good but not mandatory, we already have a library for the XML-RPC server implementation
- Interest in how DokuWiki processes user input, but you can start from a working XML-RPC API and the new functions only concern a small part of DokuWiki
Easy You only need to modify a defined area of the code, the new structure shouldn't be that difficult to implement, the additional API calls could be a bit more difficult but it's your choice which ones you want to implement.
The following people volunteered to “mentor” any new developers taking up this task by answering questions, giving tips and reviewing code: