Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Note importanti Amazon API Gateway
La sezione seguente descrive in dettaglio le note che possono riguardare l'utilizzo di Gateway API.
Argomenti
Note importanti di Gateway Amazon API per le REST API
-
Le API HTTP traducono le intestazioni
X-Forwarded-*in entrata in un'intestazioneForwardedstandard e aggiungono l'IP di uscita, l'host e il protocollo. -
Gateway API aggiunge l’intestazione Content-type alla richiesta se non è presente alcun payload e Content-Length è pari a 0.
Note importanti su Gateway Amazon API per le API HTTP e WebSocket
-
Il protocollo Signature Version 4a non è ufficialmente supportato da Gateway Amazon API per le API HTTP e WebSocket.
Note importanti Amazon API Gateway per le API REST e WebSocket
-
API Gateway non supporta la condivisione di un nome di dominio personalizzato nelle REST API e WebSocket.
-
I nomi di fasi possono contenere solo caratteri alfanumerici, trattini e caratteri di sottolineatura. La lunghezza massima è 128 caratteri.
-
I percorsi di
/pinge/spingsono riservati al controllo dello stato del servizio. Se questi percorsi vengono utilizzati per le risorse API al livello di root con domini personalizzati, non sarà possibile ottenere il risultato previsto. -
Attualmente API Gateway limita gli eventi di log a 1024 byte. Il registro di eventi superiori a 1024 byte, come i corpi di testo delle richieste e delle risposte, verranno troncati da API Gateway prima dell'invio a CloudWatch Logs.
-
I parametri CloudWatch attualmente limitano i nomi e i valori di dimensione a un massimo di 255 caratteri XML validi. Per ulteriori informazioni, consulta la Guida per l'utente di CloudWatch. I valori di dimensione sono una funzione di nomi definiti dall'utente, tra cui nome dell'API, nome dell'etichetta (fase) e nome della risorsa. Quando si scelgono questi nomi, è importante non superare i limiti dei parametri di CloudWatch.
-
La dimensione massima di un modello di mappatura è 300 KB.
Note importanti Amazon API Gateway per le API WebSocket
-
API Gateway supporta payload dei messaggi fino a 128 KB con dimensione del frame massima di 32 KB. Se un messaggio supera i 32 KB, occorre suddividerlo in più frame, ciascuno di 32 KB o più piccolo. Se si riceve un messaggio di dimensioni maggiori, la connessione viene chiusa con codice 1009.
Note importanti Amazon API Gateway per le REST API
-
Il carattere barra verticale di testo semplice (
|) e il carattere parentesi graffa ({o}) non sono supportati per le stringhe di query dell'URL della richiesta e devono presentare la codifica URL. -
Il punto e virgola (
;) non è supportato per qualsiasi URL di richiesta della stringa di query e i risultati dei dati del frazionamento. -
In generale, le REST API decodificano i parametri di richiesta con codifica URL prima di passarli alle integrazioni backend. Per i parametri di richiesta UTF-8, le REST API decodificano i parametri e poi li passano come Unicode alle integrazioni backend. Il carattere percentuale (
%) con codifica URL delle REST API prima di passarlo alle integrazioni backend. -
Se effettui il test di un'API tramite la console API Gateway, potresti ricevere la risposta "unknown endpoint errors" (errori endpoint sconosciuti) se un certificato autofirmato viene inviato al back-end, se il certificato intermedio manca nella catena dei certificati o se viene rilevata dal back-end qualsiasi altra eccezione relativa a un certificato non riconoscibile.
-
È consigliabile eliminare un'entità API
ResourceoMethodcon un'integrazione privata, dopo aver rimosso eventuali riferimenti hardcoded di unVpcLink. In caso contrario, l'integrazione verrà sospesa e riceverai un errore che ti informerà che il collegamento VPC è ancora in uso anche in seguito all'eliminazione dell'entitàResourceoMethod. Questo comportamento non si applica quando l'integrazione privata fa riferimento aVpcLinktramite una variabile di fase. -
I back-end seguenti potrebbero non supportare l'autenticazione client SSL in un modo che sia compatibile con API Gateway:
-
API Gateway supporta in gran parte la specifica OpenAPI 2.0
e la specifica OpenAPI 3.0 , con le seguenti eccezioni: -
I segmenti di percorso possono contenere solo caratteri alfanumerici, trattini, punti, virgole, due punti e parentesi graffe. I parametri di percorso devono essere segmenti di percorso separati. Ad esempio, "risorsa/{nome_parametro_percorso}" è valido, mentre "risorsa{nome_parametro_percorso}" no.
-
I nomi di modelli possono contenere solo caratteri alfanumerici.
-
Per i parametri di input, sono supportati solo i seguenti attributi:
name,in,required,type,description. Altri attributi vengono ignorati. -
Il tipo
securitySchemes, se utilizzato, deve essereapiKey. Tuttavia, l'autenticazione OAuth 2 e l'autenticazione di base HTTP sono supportate tramite provider di autorizzazioni Lambda. La configurazione OpenAPI viene ottenuta tramite estensioni dei fornitori. -
Il campo
deprecatednon è supportato e viene eliminato nelle API esportate. -
I modelli di API Gateway sono definiti tramite la bozza 4 dello schema JSON
, anziché lo schema JSON utilizzato da OpenAPI. -
Il parametro
discriminatornon è supportato in nessun oggetto dello schema. -
Il tag
examplenon è supportato. -
Il campo
nullablenon è supportato. -
exclusiveMinimumnon è supportato da API Gateway. -
I tag
maxItemseminItemsnon sono inclusi nella convalida della richiesta semplice. Come soluzione alternativa, aggiorna il modello in seguito all'importazione e prima di procedere con la convalida. -
Per OpenAPI 3.0, non è possibile specificare una parola chiave
oneOf,anyOfoallOfche utilizza$refper una definizione all’interno dello stesso schema. È possibile immettere direttamente lo schema o definire una risorsa separata del modello Gateway API. Per ulteriori informazioni, consulta Creazione di modelli più complessi. -
oneOfnon è supportato per OpenAPI 2.0 o la generazione di SDK. -
Il campo
readOnlynon è supportato. -
$refnon può essere utilizzato per fare riferimento ad altri file. -
Le definizioni di risposta del modulo
"500": {"$ref": "#/responses/UnexpectedError"}non sono supportate nella root del documento di OpenAPI. Come soluzione alternativa, sostituisci i riferimenti con lo schema inline. -
I numeri del tipo
Int32oInt64non sono supportati. Di seguito viene riportato un esempio:"elementId": { "description": "Working Element Id", "format": "int32", "type": "number" } -
Il tipo di formato con numeri decimali (
"format": "decimal") non è supportato nelle definizioni dello schema. -
Nelle risposte del metodo, la definizione dello schema deve essere di tipo oggetto e non di tipo di base. Ad esempio,
"schema": { "type": "string"}non è supportato. Tuttavia, puoi trovare una soluzione alternativa al problema utilizzando il tipo di oggetto seguente:"schema": { "$ref": "#/definitions/StringResponse" } "definitions": { "StringResponse": { "type": "string" } } -
API Gateway non utilizza la sicurezza a livello di radice definita nella specifica di OpenAPI. Pertanto, la sicurezza deve essere definita a livello di operazione per essere applicata in modo appropriato.
-
La parola chiave
defaultnon è supportata.
-
-
In API Gateway vengono applicate le seguenti restrizioni e limitazioni per la gestione dei metodi con l'integrazione Lambda o HTTP.
-
I nomi delle intestazioni e i parametri di query vengono elaborati tenendo presente la distinzione tra lettere maiuscole e minuscole.
-
La tabella seguente elenca le intestazioni che potrebbero venire interrotte, rimappate o modificate quando vengono inviate all'endpoint dell'integrazione o reinviate dall'endpoint dell'integrazione: In questa tabella:
-
Remappedsignifica che il nome dell'intestazione è cambiato daa<string>X-Amzn-Remapped-.<string>Remapped Overwrittensignifica che il nome dell'intestazione è cambiato daa<string>X-Amzn-Remapped-e il valore viene sovrascritto.<string>
Nome intestazione Richiesta ( http/http_proxy/lambda)Risposta ( http/http_proxy/lambda)AgeTransito Transito AcceptTransito Interrotta/Transito/Transito Accept-CharsetTransito Transito Accept-EncodingTransito Transito AuthorizationTransito * Rimappata ConnectionTransito/Transito/Interrotta Rimappata Content-EncodingTransito/Interrotta/Transito Transito Content-LengthTransito (generato in base al corpo) Transito Content-MD5Interrotta Rimappata Content-TypeTransito Transito DateTransito Rimappata Sovrascritta ExpectInterrotta Interrotta HostSovrascritto nell'endpoint di integrazione Interrotta Max-ForwardsInterrotta Rimappata PragmaTransito Transito Proxy-AuthenticateInterrotta Interrotta RangeTransito Transito RefererTransito Transito ServerInterrotta Rimappata Sovrascritta TEInterrotta Interrotta Transfer-EncodingInterrotta/Interrotta/Eccezione Interrotta TrailerInterrotta Interrotta UpgradeInterrotta Interrotta User-AgentTransito Rimappata ViaInterrotta/Interrotta/Transito Transito/Interrotta/Interrotta WarnTransito Transito WWW-AuthenticateInterrotta Rimappata * L'intestazione
Authorizationviene eliminata se contiene una firma Signature Version 4 o viene usata un’autorizzazioneAWS_IAM. -
-
-
L'SDK Android di un'API generata da API Gateway utilizza la classe
java.net.HttpURLConnection. Questa classe genererà un'eccezione non gestita, sui dispositivi con Android 4.4 e versioni precedenti, per la risposta 401 derivante dalla rimappatura dell'intestazioneWWW-AuthenticatesuX-Amzn-Remapped-WWW-Authenticate. -
A differenza degli SDK Java, Android e iOS generati da API Gateway di un'API, l'SDK JavaScript di un'API generata da API Gateway non supporta i tentativi degli errori di livello 500.
-
La chiamata di test di un metodo utilizza il tipo di contenuto predefinito di
application/jsone ignora le specifiche di altri tipi di contenuto. -
Quando invii richieste a un'API passando l'intestazione
X-HTTP-Method-Override, API Gateway sostituisce il metodo. Per passare l'intestazione al back-end, è necessario aggiungere l'intestazione all'integrazione richiesta. -
Quando una richiesta contiene più tipi di supporto nell'intestazione
Accept, API Gateway mantiene la conformità solo al primo tipo di supportoAccept. Nella situazione in cui non puoi controllare l'ordine dei tipi di supportoAccepte il tipo di supporto del tuo contenuto binario non è il primo dell'elenco, puoi aggiungere il primo tipo di supportoAcceptnell'elencobinaryMediaTypesdella tua API e API Gateway restituirà il tuo contenuto come binario. Ad esempio, per inviare un file JPEG utilizzando un elemento<img>in un browser, il browser potrebbe inviareAccept:image/webp,image/*,*/*;q=0.8in una richiesta. Aggiungendoimage/webpall'elencobinaryMediaTypes, l'endpoint riceverà il file JPEG come binario. -
La personalizzazione della risposta del gateway predefinito per
413 REQUEST_TOO_LARGEnon è attualmente supportata. -
API Gateway include un'intestazione
Content-Typeper tutte le risposte di integrazione. Per impostazione predefinita, il tipo di contenuto èapplication/json.