Documentazione delle API di interfacciamento

Softvision Agenda dispone di un sistema di interfacciameno (API) di tipo REST grazie al quale altri applicativi possono collegarsi al sistema per ottenere dati, inserire prenotazioni etc..

Tecnologie utilizzate

Le API utilizzano il modello REST con autenticazione basata su Token. Lo scambio di dati da e verso i servizi esposti avviene utilizzando il formato Json.

Formato dei dati

  • Valuta : viene usato il simbolo "." per separare i decimali. Esempio di formati validi sono i seguenti : 10.5, 0.5, 35.0, 35
  • Data e ora : le API utilizzano il formato ISO 8601.
    Esempi:
    2020-07-27T18:51:45
    2019-07-17T10:51:14.2321

Registrazione dell'applicazione da realizzare

Per utilizzare i servizi lo sviluppatore dovrà richiedere un codice denominato "Tenancyname" una mail all'indirizzo info@softvision.it con i seguenti dati :

  • Nome e cognome / azienda.
  • Login utilizzato per accedere all'applicativo Agenda

Esempi di utilizzo

E' disponibile un progetto C# contenente esempi di chiamate alle API. Occorre far riferimento a questo progetto anche per i dettagli delle strutture dati utilizzate dalle API (CustomerDto, ServiceDto, ResourceDto etc.)

Clicca qui per scaricare il progetto


Utilizzo delle API

Vediamo ora più in dettaglio come utilizzare le API di Softvision Agenda.
Il vostro applicativo dovrà innanzitutto ottenere un Token (stringa alfanumerica) dal nostro server. Questo Token, la cui validità è di 24 ore, dovrà essere poi inserito in ogni successiva richiesta di chiamata alle API. Il token dovrà essere inserito nell'header Authorization", valorizzato a "Bearer +token"
Ad esempio se il token è "a35gdfdf453gfsd32", il valore dell'header dovrà essere "Bearer a35gdfdf453gfsd32". Tutte le risposte delle chiamate sono incapsulate nella seguente struttura:

Error: descrizone dell'errore
UnAuthorizedRequest:boolean
Result: risultato della chimata in formato json


Elenco delle API disponibili


Autenticazione

  • ENDPOINT: https://agapi.softvision.it/api/TokenAuth/Authenticate
  • Metodo:POST
  • Parametri:
    userNameOrEmailAddress:string
    Password:string
    TenancyName:string
  • Risposta:
    AccessToken:string
    ExpireInSeconds:number
    UserId:number
    AccountExpired:boolean

Richiesta lista clienti

  • ENDPOINT: https://agapi.softvision.it/api/services/app/customers/getall
  • Metodo:POST
  • Parametri:
    skipCount:number
    maxResultCount:number
  • Risposta:
    totalCount:number
    items:lista di clienti (struttura CustomerDto)

Richiesta singolo cliente

  • ENDPOINT: https://agapi.softvision.it/api/services/app/customers/IDCLIENTE
  • Metodo:GET
  • Parametri:
    IDCLIENTE:number
  • Risposta:
    struttura CustomerDto

Cancellazione cliente

  • ENDPOINT: https://agapi.softvision.it/api/services/app/customers/IDCLIENTE
  • Metodo:DELETE
  • Parametri:
    IDCLIENTE:number
  • Risposta:
    nessun dato

Modifica cliente

  • ENDPOINT: https://agapi.softvision.it/api/services/app/customers/IDCLIENTE
  • Metodo:PUT
  • Parametri:
    IDCLIENTE:number (url)

    Struttura CustomerDto (message body)
  • Risposta:
    struttura CustomerDto

Inserimento cliente

  • ENDPOINT: https://agapi.softvision.it/api/services/app/customers
  • Metodo:POST
  • Parametri:
    Struttura CustomerDto (message body)
  • Risposta:
    struttura CustomerDto

Risorse, Servizi, Membri dello Staff e Location

Le chiamate relative a questi elementi sono strutturalmente identiche alle precedenti. Gli endpoint sono:

  • Risorse:https://agapi.softvision.it/api/services/app/resources
  • (struttura ResourceDto)
  • Servizi:https://agapi.softvision.it/api/services/app/services
  • (struttura ServiceDto)
  • Risorse:https://agapi.softvision.it/api/services/app/staffmembers
  • (struttura StaffmemberDto)
  • Locations: https://agapi.softvision.it/api/services/app/locations
  • (struttura LocationDto)

Richiesta lista appuntamenti

  • ENDPOINT: https://agapi.softvision.it/api/services/app/Reservations/GetReport
  • Metodo:POST
  • Parametri:
    skipCount:number
    maxResultCount:number
    start: date
    end: date
    locationId:number (filtro obbligatorio)
    resourceId:number (filtro facoltativo)
    staffMemberId::number (filtro facoltativo)
  • Risposta:
    totalCount:number
    items:lista di appuntamenti (struttura ReportReservationDto)