Skip to content

feat(http): implement HttpFormat::Raw decoder in HttpSource#7

Open
mibrohimsulaeman-a11y wants to merge 1 commit into
OceanOS-id:mainfrom
mibrohimsulaeman-a11y:feat/http-raw-decoder
Open

feat(http): implement HttpFormat::Raw decoder in HttpSource#7
mibrohimsulaeman-a11y wants to merge 1 commit into
OceanOS-id:mainfrom
mibrohimsulaeman-a11y:feat/http-raw-decoder

Conversation

@mibrohimsulaeman-a11y

Copy link
Copy Markdown

Tujuan / Goal

Mengimplementasikan HttpFormat::Raw di crates/vil_new_http/src/source.rs (~line 710) yang sebelumnya hanya eprintln!(\"...Raw decoder not implemented yet\"). / Implement the previously stubbed HttpFormat::Raw decoder.

Perubahan / Change

Raw membaca seluruh body respons (non-streaming) lewat response.bytes().await lalu meng-emit satu pesan. Alur emit identik dengan jalur NDJSON yang sudah ada:

  1. json_tap opsional -> apply_json_tap
  2. transform_fn opsional
  3. publish via T::from_ndjson_line_shm(..) ke out_port

Error path: bila gagal baca body -> ControlSignal::error(session_id, 502, \"Body Read Failed\") ke ctrl_out_port (konsisten dengan SSE/NDJSON), lalu early return. Setelah sukses, fungsi jatuh ke blok ControlSignal::done yang sudah ada.

Reuse helper & trait yang sudah ada (apply_json_tap, from_ndjson_line_shm, ControlSignal); tidak menambah dependency, tidak mengubah API publik.

Scope

Hanya crates/vil_new_http.

Catatan / Notes

Bagian endpoint observer (/_vil/api/shm, /logs/recent) dari task yang sama tidak disertakan: implementasi nyata butuh handle ke ExchangeHeap/RegionManager dan retained-log buffer yang dimiliki/di-wire di vil_server_core (di luar scope 2 crate), bukan sekadar edit di vil_observer. Diajukan terpisah / perlu desain lintas-crate. Validasi via GitHub CI.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant