Sambutan ralat titik akhir berjujukan KrakenD

PHPz
Lepaskan: 2024-02-09 08:50:17
ke hadapan
549 orang telah melayarinya

KrakenD 顺序端点错误响应

PHP Editor Apple membawakan anda pengenalan tentang tindak balas ralat titik akhir berjujukan KrakenD. KrakenD ialah gerbang API berprestasi tinggi, tetapi anda mungkin menghadapi beberapa ralat semasa penggunaan. Antaranya, tindak balas ralat titik akhir berurutan adalah masalah biasa. Artikel ini akan menerangkan secara terperinci punca dan penyelesaian tindak balas ralat titik akhir berjujukan untuk membantu anda menangani masalah ini dengan lebih baik dan meningkatkan kestabilan dan prestasi get laluan API.

Kandungan soalan

versi krakend: 2.2.1 versi go: go1.19.3

Saya mahu menggunakan fungsi berjujukan krakend untuk menghantar permintaan berurutan ke dua titik akhir yang berbeza.

Ringkasan ringkas kes saya:

  • Dua perkhidmatan ini boleh mengembalikan kejayaan (200) dan ralat (4**).
  • Jika perkhidmatan pertama mengembalikan ralat, saya dapat melihat ralat itu dalam posmen sebagai respons. (Ini yang saya mahu)
  • Jika perkhidmatan kedua mengembalikan ralat (4**) selepas perkhidmatan pertama mengembalikan kejayaan (200), saya akan melihat respons yang berjaya daripada Posmen sementara menunggu untuk melihat ralat dikembalikan oleh perkhidmatan kedua.

Contoh titik akhir berurutan:

{
   "endpoint": "/companies/validate",
   "method": "GET",
   {{ include "input_headers.txt" }},
   "backend": [
    {
      "host": ["{{ .service.credential_service_url }}"],
      "url_pattern": "/tokens/validate",
      "method": "GET",
      "extra_config": {
         "backend/http": {
            "return_error_code": true
         }
      }
    },
    {
      "host": ["{{ .service.company_service_url }}"],
      "url_pattern": "/companies/{resp0_companyId}/validate",
      "method": "GET",
      "extra_config": {
         "backend/http": {
            "return_error_code": true
         }
      }
    }
   ],
   "extra_config": {
      "proxy": {
         "sequential": true
      }
   }
 }
Salin selepas log masuk

log idea

balas posmen

Seperti yang anda lihat, perkhidmatan pertama berfungsi dengan baik, perkhidmatan kedua mengembalikan ralat, tetapi respons posmen mengembalikan kejayaan.

Penyelesaian

Ini adalah kelakuan yang dijangkakan oleh KrakenD.

Apabila anda membuat beberapa panggilan, KrakenD akan mengembalikan apa sahaja yang tersedia bersama-sama dengan 200 kod status jika sekurang-kurangnya satu permintaan berjaya. Tetapi sebagai pertukaran, anda mendapat tajuk X-KrakenD-Complete: false memberitahu anda bahawa ada sesuatu yang gagal. Anda boleh membaca lebih lanjut mengenai pengagregatan di sini p>

Memandangkan anda menggunakan proksi berjujukan, apabila permintaan pertama gagal, tidak perlu melakukan apa-apa lagi kerana panggilan berjujukan seterusnya akan dibatalkan secara automatik. Jadi semuanya gagal dan KrakenD tidak dapat mengembalikan apa-apa, itulah sebabnya anda mendapat kegagalan yang anda inginkan.

Dalam kes lain, sejak panggilan pertama berfungsi, KrakenD mempunyai sesuatu untuk dikembalikan dan anda menerima data separa.

Anda harus menyemak kandungan pengepala X-KrakenD-Complete pelanggan anda untuk memutuskan perkara yang perlu dilakukan

Atas ialah kandungan terperinci Sambutan ralat titik akhir berjujukan KrakenD. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!