Nicht verfügbare Endpunkte mithilfe einer Swagger-Spezifikation hinzufügen
Ziehen wir die folgenden EntityType-Definitionen in einer OData-Spezifikation als Beispiel heran:
<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>
Der Endpunkt, welcher das Hinzufügen von PrimaryContent zu einem vorgegebenen Document erlaubt, ist nicht Teil der Endpunktliste, die der ODataConnector durch Analysieren der OData-Spezifikation generiert. Generell werden keine vom Backend-System für NavigationProperty Definitionen eines EntityType unterstützten Endpunkte in die vom Konnektor generierte Liste eingeschlossen. Aus diesem Grund sollten Sie eine Swagger-Spezifikation erstellen, welche diese Endpunkte definiert, und dann die Spezifikation im JSON-Format als Wert der Eigenschaft SwaggerJSON hinzufügen. Weitere Informationen finden Sie unter ODataConnector oder SAPODataConnector.
Durch Lesen der OData-Spezifikation oben wissen wir Folgendes:
Der Pfad für den Endpunkt hat das Format /Documents('{ID}')/PrimaryContent, wobei
Documents der Name des entitySet ist, das Entitäten vom Typ Document enthält.
ID der Key eines Document ist, das verwendet wird, um eine Document Instanz eindeutig zu identifizieren. Die Klammern {} um ID geben an, dass es sich um einen Platzhalter für einen erforderlichen Pfadparameter handelt. Dieser Platzhalter sollte durch einen tatsächlichen Wert ersetzt werden, wenn eine Anfrage ausgeführt wird.
PrimaryContent ist die NavigationProperty eines Document.
PUT ist die HTTP-Operation, die das Hochladen von PrimaryContent für ein Document unterstützt, da es sich bei PrimaryContent um einen ContentItem-Typ handelt. Die Eigenschaft HasStream ist für ContentItem auf True festgelegt.
Eine Datei, die als PrimaryContent eines Document hochgeladen werden soll, ist eine erforderliche Eingabe und der ContentType der Anfrage sollte multipart/form-data sein, damit die Anfrage erfolgreich ausgeführt werden kann.
Nach Ausführen des Endpunkts wird eine der folgenden Antworten erhalten:
ein JSON-Objekt, dessen Schema der Definition ContentItem entspricht
eine Fehlermeldung, die eine ungültige Anfrage angibt
Alle Anforderungen für das Ausführen einer Anfrage an den Endpunkt sollten ausgewertet werden. Hierzu kann eine Anwendung wie z.B. die Postman-Erweiterung für Google Chrome verwendet werden, bevor eine Swagger-Spezifikationsdefinition erstellt wird.
Verwenden Sie nach der Auswertung der Anforderungen in Postman ein Tool wie z.B. Swagger Editor, um eine Definition für den Endpunkt zu erstellen.
1. Starten Sie den Editor mit einem leeren paths-Objekt.
2. Fügen Sie einen Pfad für den Endpunkt und die HTTP-Operation, welche den Pfad unterstützt. hinzu. Im Beispiel oben entspricht dies "/Documents('{ID}')/PrimaryContent" und put.
3. Fügen Sie die Eingabeparameter-Definitionen für ID (path Parameter) und File (formData Parameter) hinzu.
4. Fügen Sie die folgende Logik für den Endpunkt hinzu: consumes: [ multipart/form-data ], und produces: [ application/json ].
5. Fügen Sie durch HTTP-Statuscodes identifizierte Antworten hinzu, die vom Endpunkt generiert werden.
Beispiel:
Eine erfolgreiche Operation (HTTP-Statuscode 200) gibt ein JSON-Objekt zurück, dessen Schema der Definition ContentItem entspricht. Die Referenz zur Definition ContentItem wird durch die Eigenschaft $ref angegeben.
Eine gültige Anforderung (HTTP-Statuscode 405).
6. Fügen Sie eine ContentItem-Definition hinzu. Referenzieren Sie die Definition ContentItem entityType in der OData-Spezifikation, um das Schema zu verstehen.
7. Geben Sie eine operationId und eine Zusammenfassung für die PUT-Operation an.
8. Nachdem Sie die gemeldeten Fehler im Editor behoben haben und die erforderlichen Pfade, Operationen und Definitionen hinzugefügt wurden, exportieren Sie die Swagger-Spezifikation als JSON-Datei.
9. Kopieren Sie den Inhalt der exportierten JSON-Datei und legen Sie ihn als den Wert der Eigenschaft SwaggerJSON fest.
War dies hilfreich?