Sicurezza

Questo controller è sottoposto alle regole di security del sistema.
Per maggiori dettagli, fare riferimento alla sezione Authentication

Note

Le indicazioni riportate di seguito hanno lo scopo di illustrare le funzionalità e le caratteristiche di questo Web API controller.


Authentication

Token JWT

Al fine di potere invocare le API REST, è necessario ottenere un token di autenticazione tramite l’apposito servizio /Auth/Login.
Per maggiori informazioni fare riferimento all'apposita sezione di questa guida.

Bearer Authentication

La "Bearer Authentication" (tradotta "autenticazione al portatore", detta anche "autenticazione token") è uno schema di autenticazione HTTP che coinvolge un token di sicurezza denominato bearer token.

Per maggiori informazioni fare riferimento all'apposita sezione di questa guida.

Identificazione dell’applicazione chiamante

Alcune delle funzioni delle API REST possono essere utilizzate solamente se (oltre ad una corretta autenticazione dell’utente) si esegue anche una dichiarazione dell’applicazione chiamante.

Per maggiori informazioni fare riferimento all'apposita sezione di questa guida.


Actions & Paths

Di seguito sono elencate le azioni REST eseguibili tramite le Web API.
Le azioni sono raggruppate per "topic".
Clicca un "topic" per visualizzare le diverse azioni in esso contenute.

Ad ogni azione corrisponde un metodo interno alla classe del controller Web API, ed un set di paths di routing utilizzabili per invocarla.

GET: /api/v1/Message/

Routing template:

/api/{version}/Message/

Produces:

  • HTTP 200: Int64 as application/json
  • HTTP 200: Int64 as text/json
  • HTTP 200: Int64 as application/xml
  • HTTP 200: Int64 as text/plain
  • HTTP 200: Int64 as application/octet-stream

Response: 200 (Success) ApiActionResult

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


DELETE: /api/v1/Message/{id}

Parameters:

NameTypeRequiredInFeatures
id integer YES Path
  • Format: int64

Produces:

  • HTTP 200: Boolean as application/json
  • HTTP 200: Boolean as text/json
  • HTTP 200: Boolean as application/xml
  • HTTP 200: Boolean as text/plain
  • HTTP 200: Boolean as application/octet-stream

Response: 200 (Success) Boolean

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


GET: /api/v1/Message/{id}

Parameters:

NameTypeRequiredInFeatures
id integer YES Path
  • Format: int64

Produces:

Response: 200 (Success) MessageDTO

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


GET: /api/v1/Message/{id}/Exists

Parameters:

NameTypeRequiredInFeatures
id integer YES Path
  • Format: int64

Produces:

  • HTTP 200: Boolean as application/json
  • HTTP 200: Boolean as text/json
  • HTTP 200: Boolean as application/xml
  • HTTP 200: Boolean as text/plain
  • HTTP 200: Boolean as application/octet-stream

Response: 200 (Success) Boolean

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


GET: /api/v1/Message/{id}/FreeFields

Parameters:

NameTypeRequiredInFeatures
id integer YES Path
  • Format: int64

Produces:

Response: 200 (Success) FreeFieldsBOItemDTO

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


GET: /api/v1/Message/{id}/GetFull

Parameters:

NameTypeRequiredInFeatures
id integer YES Path
  • Format: int64

Produces:

Response: 200 (Success) MessageDTO

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


GET: /api/v1/Message/{id}/GetHash

Parameters:

NameTypeRequiredInFeatures
id integer YES Path
  • Format: int64

Produces:

  • HTTP 200: String as application/json
  • HTTP 200: String as text/json
  • HTTP 200: String as application/xml
  • HTTP 200: String as text/plain
  • HTTP 200: String as application/octet-stream

Response: 200 (Success) String

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


GET: /api/v1/Message/{id}/Humanize

Parameters:

NameTypeRequiredInFeatures
id integer YES Path
  • Format: int64

Produces:

Response: 200 (Success) MessageDTO

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


DELETE: /api/v1/Message/{id}/Photo

Parameters:

NameTypeRequiredInFeatures
id integer YES Path
  • Format: int64

Response:

200 (Success)

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


GET: /api/v1/Message/{id}/Photo

Parameters:

NameTypeRequiredInFeatures
id integer YES Path
  • Format: int64

Response:

200 (Success)

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


POST: /api/v1/Message/{id}/Photo

Parameters:

NameTypeRequiredInFeatures
id integer YES Path
  • Format: int64

Consumes:

  • multipart/form-data

Response:

200 (Success)

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


PUT: /api/v1/Message/{id}/Recent

Parameters:

NameTypeRequiredInFeatures
id integer YES Path
  • Format: int64

Produces:

  • HTTP 200: Boolean as application/json
  • HTTP 200: Boolean as text/json
  • HTTP 200: Boolean as application/xml
  • HTTP 200: Boolean as text/plain
  • HTTP 200: Boolean as application/octet-stream

Response: 200 (Success) Boolean

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


GET: /api/v1/Message/Count

Parameters:

NameTypeRequiredInFeatures
filter string NO Query

Produces:

  • HTTP 200: Int32 as application/json
  • HTTP 200: Int32 as text/json
  • HTTP 200: Int32 as application/xml
  • HTTP 200: Int32 as text/plain
  • HTTP 200: Int32 as application/octet-stream

Response: 200 (Success) Int32

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


POST: /api/v1/Message/CreateOrUpdate

Routing template:

/api/{version}/Message/CreateOrUpdate

Consumes:

  • application/json
  • application/xml
  • text/plain
  • application/json-patch+json
  • text/json
  • application/*+json

Produces:

  • HTTP 200: Int64 as application/json
  • HTTP 200: Int64 as text/json
  • HTTP 200: Int64 as application/xml
  • HTTP 200: Int64 as text/plain
  • HTTP 200: Int64 as application/octet-stream

Response: 200 (Success) ApiActionResult

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


DELETE: /api/v1/Message/DeleteByExternalReference

Parameters:

NameTypeRequiredInFeatures
externalReference string NO Query

Produces:

  • HTTP 200: Boolean as application/json
  • HTTP 200: Boolean as text/json
  • HTTP 200: Boolean as application/xml
  • HTTP 200: Boolean as text/plain
  • HTTP 200: Boolean as application/octet-stream

Response: 200 (Success) Boolean

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


GET: /api/v1/Message/DeleteByExternalReference

Parameters:

NameTypeRequiredInFeatures
externalReference string NO Query

Produces:

  • HTTP 200: Boolean as application/json
  • HTTP 200: Boolean as text/json
  • HTTP 200: Boolean as application/xml
  • HTTP 200: Boolean as text/plain
  • HTTP 200: Boolean as application/octet-stream

Response: 200 (Success) Boolean

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


GET: /api/v1/Message/GetBoDeleteModes

Routing template:

/api/{version}/Message/GetBoDeleteModes

Produces:

Response: 200 (Success) array of BoDeleteMode

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


GET: /api/v1/Message/GetByExternalReference

Parameters:

NameTypeRequiredInFeatures
externalReference string NO Query

Produces:

Response: 200 (Success) MessageDTO

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


GET: /api/v1/Message/GetIdsByExternalReference

Parameters:

NameTypeRequiredInFeatures
externalReference string NO Query
excludeDeletedItems boolean NO Query

Produces:

  • HTTP 200: Int64 as application/json
  • HTTP 200: Int64 as text/json
  • HTTP 200: Int64 as application/xml
  • HTTP 200: Int64 as text/plain
  • HTTP 200: Int64 as application/octet-stream

Response: 200 (Success) Int64

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


POST: /api/v1/Message/GetIdsMappedByExternalReference

Routing template:

/api/{version}/Message/GetIdsMappedByExternalReference

Consumes:

  • application/json
  • application/xml
  • text/plain
  • application/json-patch+json
  • text/json
  • application/*+json
  • text/xml
  • application/*+xml

Produces:

  • HTTP 200: Int64 as application/json
  • HTTP 200: Int64 as text/json
  • HTTP 200: Int64 as application/xml
  • HTTP 200: Int64 as text/plain
  • HTTP 200: Int64 as application/octet-stream

Response: 200 (Success) ApiActionResult

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


POST: /api/v1/Message/GetIdsNotMappedByExternalReference

Routing template:

/api/{version}/Message/GetIdsNotMappedByExternalReference

Consumes:

  • application/json
  • application/xml
  • text/plain
  • application/json-patch+json
  • text/json
  • application/*+json
  • text/xml
  • application/*+xml

Produces:

  • HTTP 200: Int64 as application/json
  • HTTP 200: Int64 as text/json
  • HTTP 200: Int64 as application/xml
  • HTTP 200: Int64 as text/plain
  • HTTP 200: Int64 as application/octet-stream

Response: 200 (Success) ApiActionResult

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


POST: /api/v1/Message/GetItemsMappedByExternalReference

Routing template:

/api/{version}/Message/GetItemsMappedByExternalReference

Consumes:

  • application/json
  • application/xml
  • text/plain
  • application/json-patch+json
  • text/json
  • application/*+json
  • text/xml
  • application/*+xml

Produces:

Response: 200 (Success) ApiActionResult

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


POST: /api/v1/Message/GetItemsNotMappedByExternalReference

Routing template:

/api/{version}/Message/GetItemsNotMappedByExternalReference

Consumes:

  • application/json
  • application/xml
  • text/plain
  • application/json-patch+json
  • text/json
  • application/*+json
  • text/xml
  • application/*+xml

Produces:

Response: 200 (Success) ApiActionResult

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


GET: /api/v1/Message/GetNewInstance

Routing template:

/api/{version}/Message/GetNewInstance

Produces:

Response: 200 (Success) MessageDTO

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


GET: /api/v1/Message/GetPolymorphicSchema

Parameters:

NameTypeRequiredInFeatures
serializePropertiesAsDictionary boolean NO Query
  • Default: True
honorAcceptLanguageHeader boolean NO Query
  • Default: False
generateSample boolean NO Query
  • Default: False
sampleGenerationStrategy SampleGenerationStrategy NO Query
useExtensions boolean NO Query
  • Default: True
includeExplicitlyDeclaredVirtualProperties boolean NO Query
  • Default: False

Produces:

  • HTTP 400: object as application/json
  • HTTP 400: object as text/json
  • HTTP 400: object as application/xml
  • HTTP 400: object as text/plain
  • HTTP 400: object as application/octet-stream

Response: 400 (Bad Request) object

Samples

Download Postman collection sample

Provalo !


GET: /api/v1/Message/GetSample

Parameters:

NameTypeRequiredInFeatures
force boolean NO Query
  • Default: False
sampleGenerationStrategy SampleGenerationStrategy NO Query
useExtensions boolean NO Query
  • Default: True

Produces:

  • HTTP 200: JObject as application/json
  • HTTP 200: JObject as text/json
  • HTTP 200: JObject as application/xml
  • HTTP 200: JObject as text/plain
  • HTTP 200: JObject as application/octet-stream

Response: 200 (Success) JObject

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


GET: /api/v1/Message/GetStandardSchema

Parameters:

NameTypeRequiredInFeatures
honorAcceptLanguageHeader boolean NO Query
  • Default: False

Produces:

  • HTTP 400: object as application/json
  • HTTP 400: object as text/json
  • HTTP 400: object as application/xml
  • HTTP 400: object as text/plain
  • HTTP 400: object as application/octet-stream

Response: 400 (Bad Request) object

Samples

Download Postman collection sample

Provalo !


GET: /api/v1/Message/GetSwagger

Parameters:

NameTypeRequiredInFeatures
honorAcceptLanguageHeader boolean NO Query
  • Default: False
bestPracticeOnly boolean NO Query
  • Default: True

Produces:

  • HTTP 200: object as application/json
  • HTTP 200: object as text/json
  • HTTP 200: object as application/xml
  • HTTP 200: object as text/plain
  • HTTP 200: object as application/octet-stream

Response: 200 (Success) object

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


GET: /api/v1/Message/MapByExternalReference

Parameters:

NameTypeRequiredInFeatures
externalReference string NO Query
internalItemId integer NO Query
  • Format: int64

Response:

200 (Success)

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


DELETE: /api/v1/Message/MultipleDelete

Routing template:

/api/{version}/Message/MultipleDelete

Consumes:

  • application/json
  • application/xml
  • text/plain
  • application/json-patch+json
  • text/json
  • application/*+json
  • text/xml
  • application/*+xml

Produces:

Response: 200 (Success) ApiActionResult

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


POST: /api/v1/Message/MultipleDelete

Routing template:

/api/{version}/Message/MultipleDelete

Consumes:

  • application/json
  • application/xml
  • text/plain
  • application/json-patch+json
  • text/json
  • application/*+json
  • text/xml
  • application/*+xml

Produces:

Response: 200 (Success) ApiActionResult

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


POST: /api/v1/Message/MultipleExists

Routing template:

/api/{version}/Message/MultipleExists

Consumes:

  • application/json
  • application/xml
  • text/plain
  • application/json-patch+json
  • text/json
  • application/*+json
  • text/xml
  • application/*+xml

Produces:

Response: 200 (Success) ApiActionResult

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


POST: /api/v1/Message/MultipleGet

Routing template:

/api/{version}/Message/MultipleGet

Consumes:

  • application/json
  • application/xml
  • text/plain
  • application/json-patch+json
  • text/json
  • application/*+json
  • text/xml
  • application/*+xml

Produces:

Response: 200 (Success) ApiActionResult[]>

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


GET: /api/v1/Message/PrintableFields

Parameters:

NameTypeRequiredInFeatures
includeFull boolean NO Query
  • Default: True
includeNesting boolean NO Query
  • Default: True

Produces:

Response: 400 (Bad Request) array of LiquidStruct

Samples

Download Postman collection sample

Provalo !


GET: /api/v1/Message/ResetExternalReferences

Parameters:

NameTypeRequiredInFeatures
internalItemId integer NO Query
  • Format: int64

Response:

200 (Success)

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


GET: /api/v1/Message/Search

Parameters:

NameTypeRequiredInFeatures
filter string NO Query
orderBy string NO Query
skip integer NO Query
  • Format: int64
top integer NO Query
  • Format: int64
select string NO Query

Produces:

Response: 200 (Success) MessageDTO

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


GET: /api/v1/Message/SearchIds

Parameters:

NameTypeRequiredInFeatures
filter string NO Query
orderBy string NO Query
skip integer NO Query
  • Format: int64
top integer NO Query
  • Format: int64

Produces:

  • HTTP 200: Int64 as application/json
  • HTTP 200: Int64 as text/json
  • HTTP 200: Int64 as application/xml
  • HTTP 200: Int64 as text/plain
  • HTTP 200: Int64 as application/octet-stream

Response: 200 (Success) Int64

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


GET: /api/v1/Message/SearchIdsByExternalReference

Parameters:

NameTypeRequiredInFeatures
externalReference string NO Query

Produces:

  • HTTP 200: Int64 as application/json
  • HTTP 200: Int64 as text/json
  • HTTP 200: Int64 as application/xml
  • HTTP 200: Int64 as text/plain
  • HTTP 200: Int64 as application/octet-stream

Response: 200 (Success) Int64

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !


GET: /api/v1/Message/UnmapByExternalReference

Parameters:

NameTypeRequiredInFeatures
externalReference string NO Query
internalItemId integer NO Query
  • Format: int64

Response:

200 (Success)

Samples

Download HTTP 200 response sample

Download Postman collection sample

Provalo !



Definizioni

Le definizioni a seguire descrivono la struttura dei datamodels coinvolti nelle diverse operazioni REST eseguibili per questo controller.

Alcune definizioni sono sottoposte a serializzazione polimorfica, e pertanto il loro schema polimorfico completo viene riportato.

NameDescription
BoDeleteModeBo Delete Mode
BusinessObjectTypeBusiness Object Type
CRMTablesCRM Tables
DeleteItemResultDelete Item Result
DTOPropertyUsageDTO Property Usage
ExistsItemResultExists Item Result
ExternalReferenceDTOExternal Reference
FreeFieldsBOItemDTOFree Fields BO Item
FreeFieldsBOItemLocalizingDTOFree Fields BO Item Localizing
FreeFieldsBOTreeItemDTOFree Fields BO Tree Item
FreeFieldsTypeFree Fields Type
GetIdsMappedByExternalReferenceRequestGet Ids Mapped By External Reference Request
GetItemResult`1[]Get Item Result`1
GetItemsMappedByExternalReferenceRequestGet Items Mapped By External Reference Request
GravityGravity
JTokenJ Token
LinkItemLink Item
LiquidStructLiquid Struct
LocalizeTypeLocalize Type
LocalizingDTOLocalizing
MessageAttachmentDTOMessage Attachment
MessageBodyFormatMessage Body Format
MessageDTOMessage
MessageTypeMessage Type
MultipleDeleteModelMultiple Delete Model
MultipleExistsModelMultiple Exists Model
MultipleGetModelMultiple Get Model
SampleGenerationStrategySample Generation Strategy

Errori

Le actions del controller possono generare errori per i seguenti casi:

  • Stato 400: query mal strutturate (es. parametri codificati non correttamente)
  • Stato 401: errori di autenticazione (es. chiavi o credenziali non riconosciute)
  • Stato 403: Proibito. La richiesta era valida, ma il server rifiuta l'azione. L'utente potrebbe non disporre delle autorizzazioni necessarie per una risorsa o potrebbe aver bisogno di un account di qualche tipo.
  • Stato 404: Non trovato, o risorsa sconosciuta
  • Stato 409: Conflitto. Indica che la richiesta non può essere elaborata a causa di conflitti nello stato corrente della risorsa, ad esempio un conflitto di modifica tra più aggiornamenti simultanei.
  • Stato 500: Errore interno del del server

Gli errori sono formattati in JSON


Versioning

E’ possibile selezionare la versione dei web services tramite il token {version}

/api/{version}/{controller}/{details}/{action}/{id}?{querystring}

Il token {version} può contenere sia valori “esatti”, sia l’alias speciale “latest”, che identifica la versione più recente tra quelle esistenti nel sistema.

In linea generale si raccomanda vivamente l’utilizzo dell’alias speciale “latest”.

Qualora si desideri essere particolarmente “conservativi” ed aderenti ad una specifica versione, specificarne il nome in modo esplicito (es. “v1”).


Routing

Il sistema utilizza la seguente sintassi di routing, costituita da una sequenza di "path-tokens" (i parametri della request):

{schema}://{host}/api/{version}/{controller}/{details}/{action}/{id}?{querystring}

I tokens identificano rispettivamente:

  • {host} -> HOST dell’URL
  • {version} -> versione dei web services
  • {controller} -> nome del servizio (controller) che si desidera invocare
  • {details} -> livello opzionale di dettaglio del JSON ritornato (se pertinente)
  • {action} -> azione opzionale (metodo) invocata nel controller
  • {id} -> singolo argomento opzionale (parametro) di primary key del metodo nel controller, qualora esso lo preveda
  • {querystring} -> parametri aggiuntivi ed eventuali "modificatori" del processo di elaborazione e serializzazione


OData

Le API REST sono internamente basate sulla tecnologia Microsoft WebAPI, e sono largamente compliant con le specifiche REST, OData v3 e OData v4.

Funzioni ed approfondimenti relativi a OData

Per maggiori approfondimenti e dettagli relativi ai criteri generali d'uso delle funzioni OData, fare riferimento alla guida di base sull'argomento


Opzioni

Le funzioni delle API REST implementate in CRM in Cloud includono un vasto set di opzioni che consentono di adattare struttura e forma dei pacchetti JSON in base alle proprie esigenze e preferenze.

Al contrario dei parametri, che vengono specificati nella route dell’URL (attraverso i tokens e la querystring), le opzioni devono invece essere passate tramite gli headers HTTP della request.

Come da RFC6648 tutte le opzioni passate tramite headers HTTP hanno nel proprio nome il prefisso custom “Crm-”.

Qualora una certa opzione non venga specificata, il sistema utilizzerà il valore di default specifico alla {version} indicata nell’URL.

Per una disquisizione completa relativa alle opzioni ed alla serializzazione polimorfica, fare riferimento alla guida generale sull'argomento


Swagger

Di seguito è possibile scaricare il descrittore JSON in formato Swagger/OpenAPI

Download Swagger descriptor