>  기사  >  백엔드 개발  >  KrakenD용 플러그인을 구현할 때 잘못된 노드 유형 패닉이 발생함

KrakenD용 플러그인을 구현할 때 잘못된 노드 유형 패닉이 발생함

WBOY
WBOY앞으로
2024-02-09 10:21:09994검색

为 KrakenD 实现插件时无效的节点类型恐慌

php 편집기 Baicao는 오늘 KrakenD 플러그인 개발의 일반적인 문제인 "KrakenD용 플러그인을 구현할 때 잘못된 노드 유형 패닉"을 소개합니다. KrakenD는 풍부한 기능과 유연한 플러그인 시스템을 제공하는 빠른 고성능 API 게이트웨이입니다. 그러나 KrakenD 플러그인을 개발할 때 잘못된 노드 유형 문제가 발생하여 플러그인이 제대로 작동하지 않을 수 있는 경우가 있습니다. 이 기사에서는 이 문제의 원인과 개발자가 이러한 패닉을 극복하는 데 도움이 되는 솔루션을 살펴보겠습니다.

질문 내용

리디렉션 없이 플러그인을 개발 중입니다. 저는 krakend-ce 2.2.1(golang 1.19 사용)을 사용하고 있는데 당황스럽습니다.

으아악

https://github.com/gin-gonic/gin/issues/2959와 비슷해 보이지만 이전 버전의 크라켄드에서 진 버전이 업그레이드 되었습니다. 실제로 대문자라면 이상할 것입니다. 플러그인 없이도 완벽하게 작동합니다. 마지막 부분도 잘랐습니다/(뭔가 어떤 이유로 추가됐는지)

그런데 저는 동일한 버전의 krakend를 사용하여 플러그인을 컴파일하고 있습니다.

으아악

내 엔드포인트는 다음과 같이 정의됩니다.

으아악

편집: 내 브라우저에는 /abc 대신 /abc/가 계속 표시됩니다. 이로 인해 경로 간에 충돌이 발생할 수 있습니다(여기 참조: https://github.com/krakendio/krakend-ce/issues/386). 어쨌든 그렇지 않습니다. 슬래시를 추가할 위치를 알고 있습니다(영구적으로 잘라낸 줄 알았는데...아닌 것 같습니다)

edit2: https://www.krakend.io/docs/service-settings/router-options/를 찾아서 "disable_redirect_fixed_path"를 사용했습니다. true 및 "disable_redirect_trailing_slash": true, 더 이상 당황하지 않습니다... 이제 또 다른 문제가 있습니다. 내 볼더가 /a/ 또는 후행 슬래시 경로가 있는 항목으로 리디렉션하려고 할 때 무한 리디렉션(농담으로 10개)이 발생합니다. krakend는 자체 방식으로 리디렉션을 처리했기 때문에 플러그인에서...

여기서 가장 큰 문제는 /{level1}과 /{level1}/{level2}가 동시에 /abc/와 일치할 때 라우팅 충돌인 것 같아요

아이디어?

해결 방법

이 좋습니다. 이 문제를 해결하기 위해 이 https://www.php.cn/link/ba530cdf0a884348613f2aaa3a5ba5e8 구성을 사용하여 wildcard+no_redirect 플러그인을 만들려고 했지만 copilot&gpt4를 사용해도 실패했습니다. 감히 이것을 달성하기 위해. 그래서 다른 방법으로 문제를 해결했습니다. 바위 앞에 게이트웨이를 놓고 요청이 실패할 때마다 경로를 추가했습니다. 왜냐하면 기록된 경로(*흐느끼는 소리)가 없었기 때문입니다. 리디렉션 없는 플러그인이 필요한 파일에는 잘 작동합니다. 훌륭한 솔루션이지만 지금까지는 효과가 있었고 생각만큼 오래 가지 못했습니다

위 내용은 KrakenD용 플러그인을 구현할 때 잘못된 노드 유형 패닉이 발생함의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제