1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/dolibarr_ynh.git synced 2024-09-03 18:35:53 +02:00
dolibarr_ynh/sources/dolibarr/htdocs/api/README.md
Laurent Peuch e6008fc691 init
2015-09-28 22:09:38 +02:00

2.3 KiB

API howto

Explore the api

You can explore API method by using web interface : https://yourdolibarr.tld/htdocs/public/api/explorer/index.html (replace yourdolibarr.tld by real hostname of your Dolibarr installation)

Access to the API

Warning : access to the API should (or better : must!) be secured with SSL connection

To access to the API you need a token to identify. When you access the API for the first time, you need to log in with user name and password to get a token. Only this token will allow to access API with.

To log in with the API, use this uri : https://yourdolibarr.tld/htdocs/public/api/login?login=username&password=password (replace bold strings with real values)

The token will be saved by Dolibarr for next user accesses to the API and it must be put into request uri as api_key parameter.

Develop the API

The API uses Lucarast Restler framework. Please check documentation https://www.luracast.com/products/restler and examples http://help.luracast.com/restler/examples/ Github contains also usefull informations : https://github.com/Luracast/Restler

To implement it into Dolibarr, we need to create a specific class for object we want to use. A skeleton file is available into /dev directory : skeleton_api_class.class.php The API class file must be put into object class directory, with specific file name. By example, API class file for 'myobject' must be put as : /htdocs/myobject/class/api_myobject.class.php. Class must be named MyobjectApi.

If a module provide several object, use a different name for 'myobject' and put the file into the same directory.

Define url for methods

It is possible to specify url for API methods by simply use the PHPDoc tag @url. See examples :

/**
* List contacts
* 
* Get a list of contacts
*
* @url	GET /contact/list
* @url	GET /contact/list/{socid}
* @url	GET	/thirdparty/{socid}/contacts
* [...]

Other Annotations Other annotations are used, you are encouraged to read them : https://github.com/Luracast/Restler/blob/master/ANNOTATIONS.md

PHPDoc tags can also be used to specify variables informations for API. Again, rtfm : https://github.com/Luracast/Restler/blob/master/PARAM.md