Einschränkungen der OpenAPI 3.x-Funktionen
In diesem Dokument werden die Funktionseinschränkungen für die Verwendung von OpenAPI 3.x mit API Gateway beschrieben.
Weitere Informationen zu unterstützten OpenAPI-Spezifikationsversionen finden Sie unter OpenAPI – Übersicht.
Neue OpenAPI 3.x-Einschränkungen
In diesem Abschnitt werden die Einschränkungen für neue Funktionen in OpenAPI 3.x beschrieben.
Server
OpenAPI 3.x unterstützt mehrere server-Objekte, um Hosts und Basispfade zu definieren. API Gateway verwendet jedoch ein einzelnes Serverobjekt, das durch die Erweiterung x-google-endpoint identifiziert wird, um den Dienst zu konfigurieren.
Sie können zwar mehrere Server definieren, API Gateway berücksichtigt jedoch nur den Server, der die Erweiterung x-google-endpoint enthält, und lässt nur einen solchen Server zu. Für API Gateway ist keine Server-URL erforderlich. Sie können also entweder keine Server oder einen Server mit der Erweiterung x-google-endpoint definieren.
Die folgenden Definitionen sind beispielsweise für API Gateway gültig:
servers:
- url: https://example.com
x-google-endpoint: {}
servers:
- url: https://example.com
x-google-endpoint: {}
- url: https://example2.com
Die folgende Definition ist ungültig, da sie mehrere x-google-endpoint-Erweiterungen enthält:
servers:
- url: https://example.com
x-google-endpoint: {}
- url: https://example2.com
x-google-endpoint: {}
Die folgende Definition ist für API Gateway gültig, aber API Gateway ignoriert das Serverobjekt:
servers:
- url: https://example.com
Server in mehreren Dateien
Wenn Sie mehrere OpenAPI-Dateien hochladen und eine Datei einen Server mit der Erweiterung x-google-endpoint enthält, müssen alle Dateien auch einen Server mit einer identischen x-google-endpoint-Erweiterung und einem identischen Host in der Server-URL haben. Der Basispfad kann sich von Datei zu Datei unterscheiden.
Relative URL
Bei API Gateway werden relative URLs im servers-Objekt als eigener Basispfad behandelt, da in der Spezifikation kein Hostname erforderlich ist. Dies unterscheidet sich vom standardmäßigen OpenAPI-Verhalten, bei dem relative URLs anhand des Servers aufgelöst werden, auf dem die OpenAPI-Definition gehostet wird. API Gateway behandelt beispielsweise url: /v1 als Basispfad.
Basispfade müssen mit „/“ beginnen. API Gateway lehnt URLs ab, die kein Schema haben oder nicht mit „/“ beginnen, um einen Basispfad anzugeben.
Nicht unterstützte Erweiterungen
API Gateway unterstützt die Erweiterung x-google-allow für OpenAPI 3.x nicht.
Maximale Dateigrößen
API Gateway erzwingt eine Gesamtgrößenbeschränkung von 10 MB und eine Dateianzahlbeschränkung von 50 für hochgeladene OpenAPI 3.x-Dateien.
MCP-Einschränkungen
Während der öffentlichen Vorschau gelten für die Unterstützung des Model Context Protocol (MCP) die folgenden Einschränkungen:
- Begrenzung der Toolanzahl: Kunden können maximal 1.000 MCP-Tools pro Gateway verwenden.
- HTTP-Methoden: Nur die Vorgänge
GET,POST,PUT,PATCHundDELETEkönnen als MCP-Tools bereitgestellt werden.HEAD,OPTIONSundTRACEwerden nicht unterstützt. - Streaming: Das Streaming von Server-Sent Events (SSE) für Toolaufrufe mit langer Ausführungszeit wird nicht unterstützt.
- Batchanfragen: JSON-RPC-Batcharrays werden abgelehnt.
- Multimodale Nutzlasten: Toolantworten sind auf UTF-8-Text beschränkt. Binäre Antworten werden nicht unterstützt.
- Zustandslosigkeit: Die Implementierung ist zustandslos. Sitzungskennungen (wie
MCP-Session-Id) werden nicht verwendet oder verwaltet. - Nicht unterstützte MCP-Methoden: Spezielle Methoden wie
resources/*,prompts/*,sampling/*,completion/*,pingundlogging/*werden nicht unterstützt und geben den JSON-RPC-Fehlercode-32601zurück. - Keine Tool-Annotationen: Hinweise wie
destructiveHintoderreadOnlyHintwerden in Tool-Deklarationen nicht ausgegeben. - CORS-Preflight: Die automatisierte CORS-Preflight-Verarbeitung (
OPTIONS-Anfragen) im Pfad/mcpwird nicht vom Gateway verwaltet. - Gegenseitiger Ausschluss von Modell-Routing: Sie können MCP und Modell-Routing nicht in derselben API-Konfiguration verwenden.
- Nicht unterstützte MCP-Antworten: Vorgänge, die leere Textkörper in der Antwort zurückgeben, z. B. HTTP-204-Antworten, werden nicht unterstützt.
- Schemaerkennung: Komplexe verschachtelte Objektschemas, die aus Ihrer OpenAPI-Spezifikation abgeleitet wurden, werden aufgrund einer bekannten Einschränkung bei der Konfigurationsverarbeitung möglicherweise nicht vollständig oder korrekt in der
tools/list-Erkennungsantwort gerendert. - Keine Benachrichtigungen über Änderungen der Toolliste: Das Gateway gibt keine
notifications/tools/list_changedaus. Nachdem Sie eine neue API-Konfiguration bereitgestellt haben, müssen Clientstools/listnoch einmal aufrufen. Weitere Informationen finden Sie unter Verfügbare MCP-Tools aktualisieren.
Bestehende Einschränkungen
In diesem Abschnitt werden Einschränkungen beschrieben, die von OpenAPI 2.0 übernommen wurden und auch für OpenAPI 3.x gelten.
Ignorierte Bereiche
API Gateway akzeptiert zwar OpenAPI-Dokumente mit Bereichen, die in einem Sicherheitsschemaobjekt definiert sind, prüft oder erzwingt diese Bereiche jedoch nicht.
Mehrere Sicherheitsanforderungen
- Anforderungen an API-Schlüssel: API Gateway unterstützt keine alternativen (logischen ODER) Sicherheitsanforderungen, wenn eines der Schemas ein API-Schlüssel ist. API Gateway unterstützt jedoch Konjunktionen (logisches UND), sodass Sie sowohl einen API-Schlüssel als auch ein OAuth2-Token anfordern können.
- OAuth2-Anforderungen: API Gateway unterstützt alternative (logische ODER) Sicherheitsanforderungen für verschiedene OAuth2-Sicherheitsschemas. API Gateway unterstützt keine Konjunktionen (logisches UND), es sei denn, die zusätzliche Sicherheitsanforderung ist ein API-Schlüssel.
- Optionale Sicherheit: Sie können eine leere Sicherheitsanforderung (
- {}) verwenden, um die Sicherheit für einen API-Schlüssel optional zu machen. API Gateway unterstützt dies jedoch nicht für OAuth.
Validierung der Sicherheitsdefinition
API Gateway lehnt eine OpenAPI 3.x-Spezifikation ab, die eine Sicherheitsanforderung ohne entsprechende Definition im Abschnitt securityDefinitions verwendet.
URL-Pfadvorlagen
API Gateway unterstützt nur URL-Pfadvorlagenparameter, die ganze Pfadsegmente darstellen, z. B. /items/{itemId}. API Gateway unterstützt keine Parameter, die Teilsegmenten entsprechen, z. B. /items/prefix_{id}_suffix, und lehnt diese ab.
Parameter, Schemas, Anfragetexte und Typen
API Gateway akzeptiert OpenAPI-Dokumente mit verschiedenen Parameter- und Typdefinitionen (z. B. required-Parameter und Arrayformate), erzwingt sie jedoch nicht. API Gateway leitet eingehende Anfragen unabhängig von diesen Definitionen an Ihre API weiter.
API Gateway unterstützt nur primitive Typen in Anfrageparametern.
Verweise auf externe Typen
API Gateway unterstützt keine Verweise auf Typen außerhalb des bereitgestellten OpenAPI-Dokuments. Beispielsweise lässt API Gateway keine $ref zu, die auf eine externe URL verweist, und lehnt sie ab.
Benutzerdefinierter Port in der Hostadresse
API Gateway lässt keine benutzerdefinierten Ports im Feld servers.url eines OpenAPI-Dokuments zu.
Einschränkungen für YAML-Aliasse
Ein an API Gateway gesendetes OpenAPI-Dokument kann maximal 200 YAML-Aliasknoten enthalten.