feat: As a user, I want to use Nginx variables in proxy-rewrite.regex_uri

Abierto
#13,140 3 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

Nadie ha tomado este issue todavía.

  • #13800 de @ruanweihong-aaa — cerrado sin fusionar

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
48/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
lua, nginx
Área
api, backend

Línea de trabajo

Comienza con los atributos del plugin proxy-rewrite en la documentación de APISIX enlazada y sigue el manejo existente de uri y regex_uri en el repositorio. Compara la resolución de variables de Nginx con referencias a capturas de regex como $1 y $2; se considera terminado cuando una sustitución de regex_uri compatible puede resolver una variable de Nginx sin romper el comportamiento existente de las capturas, con cobertura para los ejemplos proporcionados.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement
Description

Currently, proxy-rewrite supports NGINX variable resolution in uri config parameter, but not in regex_uri. See APISIX Docs | Plugins - proxy-rewrite for reference.

Examples:

  • 🟢 Nginx variable resolution in uri:

    proxy-rewrite:
      uri: /api/$arg_name
    
  • 🟢 Pattern variable resolution in regex_uri:

    proxy-rewrite:
      regex_uri:
        - ^/api/(.*)/users/(.*)$
        - /v2/$1/external-users/$2
    
  • 🔴 Nginx variable resolution in regex_uri:

    proxy-rewrite:
      regex_uri:
        - ^/api/(.*)/users/(.*)$
        - /v2/$1/external-users/$arg_name
    

    This is not allowed and will throw an error.

Question

Since regex_uri already supports variables resolution for regex patterns (e.g. patterns matched by (.*)/(.*) can be referenced with $1 and $2), I was wondering: why does uri allow Nginx variables resolution, but regex_uri does not? Is this a design choice? Are there any contraindications in implementing this feature?

Lenguaje dominante
Lua
Estrellas
17.3k
Forks
3k
Merge medio
4 d 14 h
PR fusionados (30 d)
73

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de apache/apisix

Todos los issues de apache/apisix

Issues similares

Más issues de Lua

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.