As much as we are happy to provide a new version of our beloved BoondManager and a new API, we also understand that it comes with a migration cost for us and our customers. We chose to build a RESTfull JSONAPI for the increased productivity both for us as builders and you as consumers. 

This section is dedicated to help you make the switch to our new API. Please, feel free to reach out if any question arises.

  1. Overview
  2. Authentication
  3. Installation
  4. Using the new API
    1. Backend
      1. REST
      2. SOAP
    2. Frontend
  5. Go further with your App
  6. Active APIs
  7. Troubleshooting

Overview

Our previous REST API, were split in 2 main groups: liste and fiche. We maintained a somewhat similar structure by creating 2 end-point types:

  • end-points dedicated to searches. Ex: /opportunities
  • end-points dedicated to retrieving and updating an entity. Ex: /opportunities/57/information

There are rare cases when a single request in the previous version will require 2 requests in the current version. We will point out when it's the case.

 The API structure maintains the coupling with the UI: there is an end-point for each Tab in an entity's form. This way you can keep the same references while using the new version.

Deprecation

The previous API will still be accessible but will progressively be deprecated. However, we recommend that you start migrating to the current version as soon as possible. Feel free to reach out to our support team if you have any questions.

Authentication

We wrote a dedicated section.

Installation

The installation process is described in detail here. The process did not undergo any changes. It is still based on requesting the App's token and saving it.

The changes are restricted to the parameter named signed_request

  • It is now named signedRequest
  • We changed the names of the parameters we encoded in it

Requesting installation and sending the installation code

Previous version Current version
id_client clientToken
code_produit installationCode
issued_at  issuedAt

Response to the previous request

Previous version Current version
result result
expires expirationDate
error_message errorMessage

 

Sending the App's token

Previous version Current version
id_client clientToken
nom_client clientName
token appToken
expires  expirationDate
issued_at  issuedAt 

Response to the previous request 

Previous version Current version
result result
set_config redirectToConfiguration
visibility visibility
error_message errorMessage

 

Using the new API

Using our current API is straightforward once you have a token. It is documented here and you can easily test it using basic user credentials. Here are tools our developers use internally for testing purposes: 

If your App is embedded you probably have a Backend that handles the requests to our API and a Frontend that handles the interaction with BoondManager. The next sections will help you start using our new API and SDKs. 

Backend

REST

Creation

Creating an entity is done using a POST request.

Modification 

Modifying an entity is done using a PUT request. We can partially update an entity i-e when updating a subset of an entity's attributes the request's body may only contain the modified attributes.

Mapping Old to New versions

Hereafter, our previous API end-points and there equivalent in the current version.

Notes about the new API:

  • It has a dedicated end-point for each tab instead of accepting a specific parameter
  • It has larger capabilities. We encourage you to check them out in detail here
  • Each time you have the ability to extract data in a csv format you can simply specify the output format by appending .csv to the URL . Example:
    • {BASE_URL}/api/opportunities.csv?keywords=AO100

 

Previous endpoint Current endpoint Notes
Administration
  /administration/filedefinition   /application/dictionary

  The endpoint provides a JSON representation of all the configuration. There are also specific functions to get specific keys:

  • /application/dictionary/{key}
  • /application/dictionary/{key}/id
  /administration/perimetre   /application/perimeters

  We use a module parameter but there is no equivalent to type

  /administration/ficheaccessible   --

  There is no equivalent endpoint but we provide each API end-point with a rights function. Ex:

  • /candidates/{id}/rights
  • /contacts/{id}/rights
  • /companies/{id}/rights
  • /opportunities/{id}/rights
  • /projects/{id}/rights
  • /products/{id}/rights
  /administration/listeaccessible   /application/current-user   This end-points returns information about the connected user among which the access rights to each module.
  /administration/flags   /application/flags   Returns ALL the available flags
  /administration/soapapi   --   There is no equivalent endpoint
 Fiche
  /fiche/mafiche   /resources/{id}  
  /fiche/absence   /absences-reports/{id}

  We also provide specific functions for manipulating absence reports:

  • /absences-reports/{id}/download
  • /absences-reports/{id}/validate
  • /absences-reports/{id}/unvalidate
  • /absences-reports/{id}/reject
  /fiche/action   /actions/{id}   Creating an entity is done via a POST request on /actions
  /fiche/agence    /agencies/{id}  
  /fiche/app   /apps/{id}  
  /fiche/besoin    /opportunities/{id}  
  /fiche/businessunit    /business-units/{id}  
  /fiche/candidat   /candidates/{id}  
  /fiche/commande    /orders/{id}  
  /fiche/contrat    /contracts/{id}  
  /fiche/configuser   /application/current-user   This end-point provides the configuration for the connected user.
  /fiche/crmcontact    /contacts/{id}  
  /fiche/devis    /apps/quotations/quotations/{id}   Quotations are handled by a specific App and since our internal Apps are also accessible you can request the data.
  /fiche/document    /documents/{id}  
  /fiche/facture   /invoices/{id}  
  /fiche/frais   /expenses-reports/{id}   We also provide specific functions for manipulating expenses reports:
  • /times-reports/{id}/download
  • /times-reports/{id}/validate
  • /times-reports/{id}/unvalidate
  • /times-reports/{id}/reject
  /fiche/positionnement    /positionings/{id}  
  /fiche/mission    /deliveries/{id}  
  /fiche/produit    /products/{id}  
  /fiche/projet    /projects/{id}  
  /fiche/quota  --

  There is no equivalent end-point but we provide access to the absence accounts for each employee:

  • /resources/{id}/absences-accounts
  /fiche/ressource   /resources/{id}  
  /fiche/crmsociete    /companies/{id}  
  /fiche/temps    /times-reports/{id}   We also provide specific functions for manipulating times reports:
  • /times-reports/{id}/download
  • /times-reports/{id}/validate
  • /times-reports/{id}/unvalidate
  • /times-reports/{id}/reject
  /fiche/user   /accounts/{id}  
 Liste
  /liste/temps (Absences)   /absences-reports  
  /liste/achats   /purchases  
  /liste/actions   /actions  
  /liste/agences    /agencies  
  /liste/apps    /apps  
  /liste/avantages   /advantages  
  /liste/besoins   /opportunities  
  /liste/businessunits   /business-units  
  /liste/candidats   /candidates  
  /liste/comptes   /accounts  
  /liste/contrats    /contracts  
  /liste/crm   --

  There is no equivalent end-point but there is one for contacts and companies:

  • /contacts
  • /companies
  /liste/facturation   /invoices  
  /liste/flags    /flags  
  /liste/frais    /expenses-reports  
  /liste/jalons  --

  We provide a way to get this data given a project context:

  • /projects/{id}/batches-markers
  /liste/positionnements    /positionings  
  /liste/produits   /products   
  /liste/projets   /projects  
  /liste/quotas    /resources/{id}/absences-accounts   
  /liste/ressources   /resources  
  /liste/temps   /times-reports  
  /liste/tempsfraisabsences   --   This API has been split to 3 end-points. One for each report types: /times-reports, /absences-reports and /expenses-reports. You can use the type specific APIs to retrieve both requests and reports for each type report.
  /liste/rapportsactivite   /reporting  
Misc
  /multiple-requests   --   The ability to send multiple requests is no longer available.
  /api/hireability/parse-cv   /apps/hireability/candidates   

 

SOAP

We provide equivalent capabilities through our REST API.

Previous SOAP Current REST Notes
  readbdd   /application/read-database   A POST request with the same previous limitations on the SQL query.
  addcandidat   /candidates   You can add a candidate using our REST API
  getfiledefinition   /application/dictionary   The endpoint provides a JSON representation of all the configuration.
  dumpdatabase   /application/dump-database   

 

Frontend

Our previous SDKs are incompatible with our new version. However, as for our previous version, we provide new SDKs to interact with our web application from within your embedded App.

 

Go further with your App

Here, you will find more information about advanced features: configuration page, triggers ... 

  

Troubleshooting

You can find a section dedicated to migrations here.

Cet article vous a-t-il été utile ?
Utilisateurs qui ont trouvé cela utile : 0 sur 0

Commentaires

0 commentaire

Cet article n'accepte pas de commentaires.