Permintaan dan respons streaming

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Yang akan Anda pelajari dalam topik ini

Setelah membaca topik ini, Anda akan mengetahui:

  • Apa itu streaming permintaan dan respons di Apigee Edge
  • Kapan harus menggunakan streaming permintaan dan respons
  • Cara mengaktifkan streaming permintaan dan respons

Apa itu streaming permintaan dan respons?

Secara default, streaming HTTP dinonaktifkan dan muatan permintaan dan respons HTTP ditulis ke buffer dalam memori sebelum diproses oleh pipeline proxy API. Anda dapat mengubah perilaku ini dengan mengaktifkan streaming. Dengan streaming yang diaktifkan, payload permintaan dan respons di-streaming tanpa modifikasi ke aplikasi klien (untuk respons) dan endpoint target (untuk permintaan).

Kapan saya harus mengaktifkan streaming?

Jika proxy API Anda menangani permintaan dan/atau respons yang sangat besar (untuk batas ukuran, lihat Apa lagi yang harus saya ketahui tentang streaming di bawah), Anda mungkin ingin mengaktifkan streaming.

Apa lagi yang perlu saya ketahui tentang streaming?

Ukuran payload pesan dibatasi hingga 10 MB di Edge Cloud dan Private Cloud, meskipun streaming diaktifkan. Dalam permintaan dan respons yang tidak di-streaming, jika melebihi ukuran tersebut akan menghasilkan error protocol.http.TooBigBody.

Dalam deployment Edge untuk Private Cloud, Anda dapat mengubah batas ukuran permintaan/respons yang tidak di-streaming. Pastikan untuk menguji sebelum men-deploy perubahan ke produksi.

  • Untuk rilis Edge untuk Private Cloud sebelum 4.16.01:

    Di semua Pemroses Pesan, edit file http.properties untuk meningkatkan batas dalam parameter HTTPResponse.body.buffer.limit, lalu mulai ulang Pemroses Pesan.
  • Untuk rilis Edge untuk Private Cloud 4.16.01 dan yang lebih baru:
    1. Edit file /<inst_root>/apigee/customer/application/message-processor.properties. Jika file tersebut tidak ada, buat file tersebut.

    2. Tetapkan properti conf_http_HTTPResponse.body.buffer.limit di message-processor.properties. Misalnya:
      conf_http_HTTPResponse.body.buffer.limit=5m

    3. Mulai ulang Message Processor:
      > /<inst_root>/apigee/apigee-service/bin/apigee-service edge-message-processor restart

    4. Ulangi untuk semua Pemroses Pesan.

Cara mengaktifkan streaming permintaan dan respons

Untuk mengaktifkan streaming permintaan, Anda perlu menambahkan properti request.streaming.enabled ke definisi ProxyEndpoint dan TargetEndpoint dalam paket proxy dan menyetelnya ke true. Demikian pula, tetapkan properti response.streaming.enabled untuk mengaktifkan streaming respons.

Anda dapat menemukan file konfigurasi ini di UI pengelolaan dalam tampilan Develop untuk proxy Anda. Jika Anda melakukan pengembangan secara lokal, file definisi ini ada di apiproxy/proxies dan apiproxy/targets.

Contoh ini menunjukkan cara mengaktifkan streaming permintaan dan respons dalam definisi TargetEndpoint.

<TargetEndpoint name="default">
  <HTTPTargetConnection>
    <URL>http://mocktarget.apigee.net</URL>
    <Properties>
      <Property name="response.streaming.enabled">true</Property>
      <Property name="request.streaming.enabled">true</Property>
      <Property name="supports.http10">true</Property>
      <Property name="request.retain.headers">User-Agent,Referer,Accept-Language</Property>
      <Property name="retain.queryparams">apikey</Property>
    </Properties>
  </HTTPTargetConnection>
</TargetEndpoint>

Contoh ini menunjukkan cara mengaktifkan streaming respons dan permintaan dalam definisi ProxyEndpoint:

<ProxyEndpoint name="default">
  <HTTPProxyConnection>
    <BasePath>/v1/weather</BasePath>
    <Properties>
      <Property name="allow.http10">true</Property>
      <Property name="response.streaming.enabled">true</Property>
      <Property name="request.streaming.enabled">true</Property>
    </Properties>
  </HTTPProxyConnection>
</ProxyEndpoint>

Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi definisi endpoint, lihat Referensi properti endpoint.

Contoh kode terkait

Contoh proxy API di GitHub mudah didownload dan digunakan. Lihat Menggunakan proxy API contoh untuk mengetahui informasi tentang cara mendownload dan menggunakan contoh.

Contoh proxy yang menampilkan streaming meliputi:

  • streaming - Menunjukkan proxy API yang dikonfigurasi untuk streaming HTTP.
  • Edge Callout: Signed URL Generator - Mengilustrasikan praktik terbaik untuk membuat URL bertanda tangan untuk mengakses file besar, bukan mencoba melakukan streaming file tersebut dalam permintaan/respons.