2017-05-12 1 views
0

Gemäß den AWS-Dokumenten unterstützen Modelle in API Gateway die JSON-Schemasyntax. Sie werden jedoch als Swagger-OpenAPI-Spezifikationen exportiert, wobei die Swagger-Spezifikation viele gültige JSON-Schema-Strukturen nicht vollständig unterstützt.Wie deklarieren Sie mehrere Typen einer Eigenschaft im API-Gateway-Modell mit JSON Schema und Swagger?

Ich würde mein API-Gateway-Modell wie eine Reihe von optionalen Textfeldern zu haben, zum Beispiel message, aber wenn sie als

{ 
    "type": "object", 
    "properties": { 
    "message": { 
     "type": "string" 
    } 
    } 

}

und mit Körperüberprüfung aktivierte definiert ist, lehnt sie dieses Modell Wenn die Nachricht eine leere Zeichenfolge ist oder fehlt. Es tut das, obwohl message nicht in der Liste der erforderlichen Felder

"required": [ 
     "message" 
    ], 

Graben um enthalten ist, fand ich, dass leer/null String-Werte zu ermöglichen, eine einen null Typ in die Liste der Immobilienarten hinzufügen müssen, zB :

{ 
    "type": ["null", "string"] 
} 

Dies ist jedoch immer noch nicht funktioniert mit API-Gateway, noch exportiert richtig als YAML Swagger spec.

Gibt es eine Möglichkeit, dies mit API Gateway und Swagger zu lösen?

+0

'" type ": [" null "," string "]' ist in OpenAPI/Swagger 2.0 nicht gültig, da es nicht mehrere Typen und 'null' als Typ unterstützt. 'Nullable' wird in der nächsten Version, OpenAI 3.0, unterstützt. (Dies wurde zuvor gefragt, ich werde versuchen, doppelte Fragen zu finden ...) Nicht sicher über den API-Gateway-Teil obwohl. – Helen

+0

danke, das ist ein wertvoller Input! – jaccus

Antwort

0

Wie von Helen erwähnt, unterstützt Swagger weder mehrere Typen noch null als Typ. Das wird wahrscheinlich verhindern, dass Ihr erster Ansatz mit dem Import/Export von Swagger arbeitet.

Die interne API-Gateway-Modellunterstützung verwendet jedoch JSON-Schema und funktioniert möglicherweise, obwohl dies beim Import/Export nicht möglich ist. Ich schlage vor, dass Sie Ihr Modell über die API-Gateway-Konsole oder über das API-Gateway-CLI eingeben.

+0

Wie kann ich meine API dann versionieren, wenn die einzige Export/Import-Methode (Swagger) nicht alle Funktionen des API Gateways unterstützt? Gibt es vielleicht eine andere Möglichkeit, API Gateway-Modelle zu exportieren/importieren? – jaccus

Verwandte Themen