Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Sambutan ralat titik akhir berjujukan KrakenD

Sambutan ralat titik akhir berjujukan KrakenD

PHPz
PHPzke hadapan
2024-02-09 08:50:17516semak imbas

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
      }
   }
 }

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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam