2

Ich versuche, neue APIGateway über Import von Swagger zu schaffen, aber Validierungsfehler mit:Amazon API-Gateway Import von Swagger Fehler - nicht nehmen Generics

Die besondere Klasse das Problem verursacht unsere PaginationModel Klasse.

Codemodell Definition:

public class PaginationModel<T> 
{ 
    public IEnumerable<T> items { get; set; } 
    public int offset { get; set; } 
    public int totalCount { get; set; } 
} 

Abschnitt Swagger Datei darstellt Generisches PaginationModel für einen bestimmten Typ:

*"PaginationModel[DepartmentUIModel]":{"type":"object","properties":{"items": {"type":"array","items":{"$ref":"#/definitions/DepartmentUIModel"}},"offset": {"format":"int32","type":"integer"},"totalCount":{"format":"int32","type":"integer"}}}* 

Fehler beim Swagger Datei in Amazon API-Gateway importieren:

Können Modell für 'PaginationModel [DepartmentUIModel]' erstellen: Der Modellname muss alphanumerisch sein: PaginationModel [DepartmentUIModel ]

Die '[' mit '<' und '{' geändert, aber das Problem nicht gelöst.

Abgesehen von der Erstellung bestimmter Paginierungsmodelle für alle Typen, gibt es eine Möglichkeit, dass ich das API-Gateway dazu bringen kann, diese spezielle Ausgabe von Swagger zu verstehen?

+0

Am besten verwenden Sie das' allOf'-Konstrukt, um generische, wiederverwendbare Muster und typspezifische Modelle zu umschließen. Das Modell 'PaginationModel [DepartmentUIModel]' funktioniert nicht als generischer Code in irgendeinem Kontext von swagger. – fehguy

+0

Danke Fehguy, aber nicht sicher, ob du die Frage verstanden hast. Wir haben eine aktuelle Swagger-Definition verwendet und dann in http://editor.swagger.io/ - keine Probleme, sowie in eine kostenlose Version von https://restlet.com/ importiert. Eine Swagger-Definitionsdatei zeigt beim Laden in diese Tools keine Fehler an. ABER Swagger Definition kann nicht erfolgreich in AWS API Gateway importiert werden – Alex

Antwort

1

Die Antwort von fehguy ist hilfreicher für Sie, aber der spezifische Fehler, den Sie von API Gateway erhalten, ist nur eine zusätzliche Bestätigung, die wir zusätzlich zu den Angaben in Swagger haben.

Unable Modell zu schaffen für 'PaginationModel [DepartmentUIModel]': Modellname muss alphanumerisch sein: PaginationModel [DepartmentUIModel]

Modellnamen alphanumerisch sein müssen, das heißt, sie die Regex „entsprechen haben [a -zA-Z0-9] + "

+0

Vielen Dank Jack. Wenn ich die Regex sehe, kann ich verstehen, dass ich keine andere Wahl habe, als in der Swagger Ausgabe nur alphanumerisch zu haben. Ich bin gespannt, warum die zusätzliche Validierung noch dazu kommt, was Swagger bereits tut. Es scheint mir genug zu sein. Jedenfalls werde ich die aktuellen Grenzen einhalten. – Alex