kafka_publish: HTTP options repeat the "header" key, so likely only one header is sent

Aperta Adatta ai principianti
#51 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
83/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
sql
Ambito
backend

Direzione di ricerca

Inizia dalla dichiarazione collegata di src/kafka/publish.sql per http_options, quindi confronta la forma oggetto delle intestazioni usata dagli altri moduli. Aggiorna le opzioni in modo che siano rappresentati sia Content-Type sia Accept, e controlla che il JSON risultante contenga entrambe le intestazioni senza chiavi duplicate.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug

dbsdk_v1.kafka_publish declares its QSYS2.HTTP_POST_VERBOSE options as a JSON object with the "header" key twice:

https://github.com/IBM/AI-SQL-Toolkit-IBMi/blob/26cbde5bec645429819fb429600650d70bdf45ee/src/kafka/publish.sql#L31-L33

declare http_options varchar(32400) ccsid 1208 default '{"header":"Content-Type,application/vnd.kafka.json.v2+json" ,
                                                         "header":"Accept,application/vnd.kafka.v2+json"
                                                        }';

Duplicate keys in a JSON object are not interoperable. Most parsers keep only the last value, in which case only Accept is sent and the REST Proxy receives no Content-Type: application/vnd.kafka.json.v2+json. Depending on the proxy version and configuration, that can produce an HTTP 415, or a fallback to a different embedded format.

Suggested fix: pass both headers through the headers object form that the other modules already use, for example:

json_object('headers': json_object(
  'Content-Type': 'application/vnd.kafka.json.v2+json',
  'Accept': 'application/vnd.kafka.v2+json'))
Lingua principale
RPGLE
Stelle
13
Fork
7
Merge medio
1g 10h
PR unite (30g)
4

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di IBM/AI-SQL-Toolkit-IBMi

Tutte le issue di IBM/AI-SQL-Toolkit-IBMi

Issue simili

Altre issue su Backend & API Design

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.