API
The LibreOffice API Wiki. API stands for Application programming interface.
LibreOffice offers a language independent API which allows to program the office in different programming languages (e.g. C++, Java, Python, CLI, StarBasic, ...). It allows to use LibreOffice as service provider in other applications, extend it with new functionality or simply customize and control LibreOffice.
The API is based on the UNO component technology and that makes it really flexible and makes it possible to use one and the same API from different programming languages, all languages which are supported by UNO.
API Reference
We try to provide always the latest version of a generated API IDL reference documentation online. You can find it on the www.openoffice.org/api/ on the left side under IDL reference. Maybe interesting for you are the two links Use and DevGuide in the top menubar of a single type documentation page.
- Use: links to an overview page where you can find all places where this type is used or referenced in the API and in the Developer's Guide
- DevGuide: links to a sub-section of the documentation page where you can find cross-references into the Developer's Guide where this type is described in detail and especially the concepts behind.
Also of interest here are the online available reference documentation of the UNO runtime for C++ and Java.
References from the WIKI into the generated IDL reference
When we moved the Developer's Guide into the wiki we thought about a way how we could achieve the useful IDL tags. The tags that get automatically converted into links to the related type in the generated IDL reference. In the end the IDLTags extension was developed that allows exactly the same functionality.
PLEASE whenever you want or have to reference an IDL type please use one of the IDL tags to create a link automatically. It will help our users and developers to find the appropriate information faster, and it will help to improve the overall navigation between the documentation (guides, examples, tutorials, ...) in the wiki and the type reference.
API Changes
Sometimes it makes sense, and it is necessary to change existing API's (or configuration etc.) incompatible and break potentially existing macros or extensions. The goal is to avoid such changes and try to provide workarounds but from time to time it's better to allow such changes. We take this serious and don't make such changes in every release but under certain conditions that you find under Concepts for incompatible API changes and an API deprecation process.
A summary and overview with detailed description of such changes can be found under Documented incompatible API changes
Supported Languages
Code Snippets, Examples and Tutorials
The idea is to collect small snippets or more complex examples showing different API use cases in different programming languages. Or to collect tutorials explaining things in more detail and step by step. Whereas Tutorials are more intended for beginners the Samples section is intended for more experienced users or simply as reference. Ideally all snippets/examples/tutorials would be available in all supported languages.
This new sections in the wiki should extend the already existing Code Snippet Base. But with the advantage of easier contribution and easier maintenance.
Things to be Done
- API/To-Dos - An overview of API To-Dos where you will hopefully find something interesting if you plan to support the API project.
FAQ
- API/FAQ - A list of frequently asked questions related to the API