Aggiunta di endpoint non disponibili utilizzando una specifica Swagger
Si considerino ad esempio le seguenti definizioni di EntityType in una specifica OData:
<EntityType Name="Document">
<Key>
<PropertyRef Name="ID"/>
</Key>
<Property Name="ID" Type="Edm.String"/>
<Property Name="Name" Type="Edm.String"/>
<Property Name="Number" Type="Edm.String"/>
<Property Name="Description" Type="Edm.String"/>
<Property Name="Title" Type="Edm.String"/>
<Property Name="Identity" Type="Edm.String">
.
.
.
<NavigationProperty Name="PrimaryContent" Type="PTC.DocMgmt.ContentItem"/>
</EntityType>
<EntityType Name="ContentItem" HasStream="true">
<Key>
<PropertyRef Name="ID"/>
</Key>
<Property Name="ID" Type="Edm.String"/>
<Property Name="Comments" Type="Edm.String"/>
<Property Name="Description" Type="Edm.String"/>
.
.
.
</EntityType>
L'endpoint che consente l'aggiunta di PrimaryContent a una determinata entità Document non viene incluso nell'elenco di endpoint generato da ODataConnector dall'analisi della specifica OData. In generale, tutti gli endpoint supportati dal sistema back-end per le definizioni di NavigationProperty di una EntityType non sono inclusi nell'elenco generato dal connettore. È pertanto necessario creare una specifica Swagger che definisca gli endpoint e quindi aggiungerla in formato JSON come valore della proprietà SwaggerJSON. Per ulteriori informazioni, vedere Utilizzo di ODataConnector o SAPODataConnector.
Relativamente all'esempio precedente, si ricavano le informazioni riportate di seguito dalla lettura della specifica OData.
Il percorso dell'endpoint sarà /Documents('{ID}')/PrimaryContent dove
Documents è il nome dell'entitySet che conterrà le entità Document.
ID è la Key di un'entità Document che viene utilizzata per identificare in modo univoco un'istanza di Document. Le parentesi graffe {} che precedono e seguono l'ID indicano che si tratta di un segnaposto per un parametro di percorso obbligatorio, che deve essere fornito quando si effettua una richiesta sostituendo il segnaposto con il valore effettivo.
PrimaryContent è la NavigationProperty di un'entità Document.
PUT è l'operazione HTTP che supporta il caricamento di PrimaryContent di un'entità Document perché PrimaryContent è di tipo ContentItem. La proprietà HasStream di ContentItem è impostata su True.
Un file che deve essere caricato come PrimaryContent di un'entità Document è un input obbligatorio e il ContentType della richiesta deve essere multipart/form-data per l'esecuzione corretta della richiesta.
La risposta generata dall'esecuzione dell'endpoint sarà una fra quelle elencate di seguito.
Un oggetto JSON il cui schema è conforme alla definizione di ContentItem.
Un errore che indica una richiesta non valida.
Tutti i requisiti per l'esecuzione di una richiesta in relazione all'endpoint devono essere valutati utilizzando un'applicazione come l'estensione Postman per Google Chrome prima di creare una definizione di specifica Swagger.
Dopo aver valutato i requisiti in Postman, utilizzare uno strumento come Swagger Editor per creare una definizione per l'endpoint.
1. Avviare l'editor con un oggetto paths vuoto.
2. Aggiungere il percorso dell'endpoint e l'operazione HTTP supportata dal percorso. Nell'esempio precedente, si tratta rispettivamente di "/Documents('{ID}')/PrimaryContent" e put.
3. Aggiungere le definizioni dei parametri di input per ID (parametro path) e File (parametro formData).
4. Aggiungere la seguente logica per l'endpoint: consumes: [ multipart/form-data ], e produces: [ application/json ].
5. Aggiungere risposte identificate dai codici di stato HTTP che verranno generati dall'endpoint.
Esempio:
L'operazione riuscita (codice di stato HTTP 200) restituirà un oggetto JSON con schema conforme alla definizione di ContentItem. Il riferimento alla definizione di ContentItem viene indicato tramite la proprietà $ref.
Una richiesta non valida (codice di stato HTTP 405).
6. Aggiungere una definizione di ContentItem. Per comprendere lo schema, fare riferimento alla definizione di entityType di ContentItem nella specifica OData.
7. Specificare un operationId e un riepilogo per l'operazione PUT.
8. Dopo avere risolto gli errori segnalati nell'editor e avere aggiunto i percorsi, le operazioni e le definizioni necessari, esportare la specifica Swagger come file JSON.
9. Copiare il contenuto del file JSON esportato e impostarlo come valore della proprietà SwaggerJSON.
È stato utile?